Hai almeno altre cinque schede aperte sul tuo browser, cercando di trovare la risposta a un problema di Linux che hai riscontrato?
Questo comportamento non è specifico per te o per gli esseri umani in generale. Anche le macchine sono multitasking. E proprio come te, anche Linux è multitasker e ha diversi processi in corso contemporaneamente. Che tu sia uno sviluppatore che utilizza Linux a livello professionale o un normale utente che lavora con Linux per le tue attività quotidiane, dovresti essere in grado di comprendere questi processi paralleli per mantenere il pieno controllo sul tuo sistema. La gestione dei processi e il controllo del sistema sono aspetti essenziali dell'esecuzione di un sistema Linux.
Per gestire in modo efficiente i processi in esecuzione sul sistema, vedere cosa sta succedendo in tempo reale, avere un’idea generale di tutti i processi in background e controllare le risorse del sistema, è necessaria una conoscenza tecnica della gestione dei processi. Il comando ps aux è un comando potente che svolge un ruolo fondamentale nella gestione dei processi e nel controllo del sistema. In questo post impareremo di più sul comando ps aux e sui suoi casi d'uso. Tratteremo anche i fondamenti di come funzionano i processi Linux.
Comprendere la gestione dei processi in Linux
Quando lavoriamo con Linux, la maggior parte delle nostre interazioni con il sistema avvengono sotto forma di comandi. In Linux, un processo è l'esecuzione di un comando. La gestione dei processi Linux implica la manipolazione dei processi avviati da un comando. È possibile terminare un processo, avviarlo o riprendere i processi che sono stati terminati. Puoi anche manipolare i comandi in corso.
Esistono due tipi di processi Linux:
- Processi in primo piano
- Processi in background
Processi in primo piano di Linux
Un processo in primo piano è un processo che viene eseguito attivamente e in genere richiede un'interazione costante e in tempo reale con l'utente. Quando un processo in primo piano è in azione, l'esecuzione degli altri processi viene sospesa. Quindi, non puoi eseguire altri comandi. Un processo in primo piano riceve input dalla tastiera come input standard o stdin. Per evitare ulteriore confusione, stdin e stdout sono flussi di dati Linux insieme a stderr. Fondamentalmente è il modo in cui l'utente interagisce con il processo e fornisce i dati per esso. Esiste un output standard o stdout prodotto dal processo in base alla sua funzionalità e all'input. I processi in primo piano sono la modalità di esecuzione predefinita in Linux.
Processi in background di Linux
I processi in background sono l’esatto opposto dei processi in primo piano poiché non richiedono l’interazione dell’utente e non occupano esclusivamente l’intero spazio del terminale, consentendo l’esecuzione di altri processi. Anche il tipo di input e output dei processi in background è diverso. Di solito non accettano stdin. Tuttavia, i risultati del processo possono essere visualizzati come stdout. La visualizzazione dell'output dei processi in background avviene contemporaneamente all'output di altri processi in primo piano. In questo modo puoi vedere l'avanzamento o i risultati del processo in background senza interrompere altre azioni importanti.
Poiché l'esecuzione di un'ampia gamma di attività in Linux dipende dalla riga di comando, i processi in primo piano possono essere problematici, mentre l'esecuzione di processi in background libera il terminale dal lavorare su altre attività. Quindi, posizionare un'attività in primo piano in background è una cosa ragionevole da fare qui. In modo da inviare un processo in background dovresti prima impedirne l'esecuzione in primo piano. Questo viene fatto semplicemente premendo CTRL+Z. Quindi digitando il comando bg, il processo terminato verrà eseguito nuovamente in background. Il comando fg invertirà il processo e lo porterà in primo piano.
Stato del processo; Sintassi, comandi e interpretazione dell'output
Una gestione efficace dei processi in Linux richiede la comprensione dello stato dei processi che possono essere monitorati dal comando ps aux. Ma prima di approfondire il comando ps aux, impariamo a conoscere i diversi stati del processo. Sebbene esistano diversi tipi di processi e stati di processo, ecco una tabella di quelli più comuni:
| Stato del processo | descrizione | |
| Correre(R) | Il processo è attualmente in esecuzione e occupa risorse della CPU. | |
| Dormire | Interrompibile (S) | Il processo è in attesa di un input o di un evento specifico per riprendere l'esecuzione. Al momento non utilizza risorse della CPU. Quando le risorse sono disponibili o vengono forniti segnali, il processo ricomincia. |
| Gruppo di continuità (D) | Proprio come un processo in modalità di sospensione interrompibile, un processo di sospensione senza interruzioni non utilizza le risorse della CPU. L’unica differenza è che non reagisce ai segnali, riprende vita solo quando le risorse sono disponibili. | |
| Arrestato(T) | Un input dell'utente o un evento specifico ha messo in pausa il processo. Un processo nello stato arrestato non utilizza alcuna risorsa della CPU. | |
| Morto(X) | Il processo è terminato e non esiste più. | |
Una buona comprensione di questi stati del processo è un aspetto cruciale per gestire e risolvere in modo efficace i problemi dei sistemi Linux. Ora tratteremo la sintassi e i comandi per ottenere lo stato del processo in Linux, nonché come interpretare l'output.
Sintassi e comandi per ottenere lo stato del processo
Puoi ottenere lo stato del processo in Linux con la sintassi di base per il comando ps:
ps [process name]
Ci sono anche altre opzioni usate con il comando ps:
ausiliario: Questa opzione mostra un elenco completo di tutti i processi in esecuzione sul sistema. Fornisce informazioni quali ID di processo (PID), ID di processo principale (PPID), utilizzo della CPU e della memoria e stati dei processi. L'output fornito dal comando ps aux è molto più ordinato, ha più leggibilità e contiene molte più informazioni utili rispetto al comando ps di base.
ef: Questa opzione mostra un elenco in formato completo dei processi con dettagli aggiuntivi, inclusa la gerarchia dei processi come struttura ad albero.
l: Questa opzione fornisce un formato di elenco lungo, che presenta informazioni più dettagliate sui processi.
Comprendere l'output
Quando esegui il comando ps con le opzioni desiderate, genera un output che rappresenta i processi attualmente in esecuzione sul tuo sistema. L'output è costituito da colonne che mostrano diversi attributi del processo, tra cui l'ID del processo (PID), l'ID del processo principale (PPID), l'utilizzo della CPU, l'utilizzo della memoria, lo stato del processo, il tipo di terminale e il nome del comando.
Ecco una spiegazione del significato di ciascuna di queste colonne:
PID: Questa colonna mostra l'ID univoco del processo.
TTY: Questa colonna mostra il tipo di terminale a cui l'utente ha effettuato l'accesso.
TEMPO: Questa colonna è un indicatore della quantità di CPU utilizzata da questo processo in minuti e secondi.
CMD: Questa colonna rappresenta il nome del comando che ha avviato questo processo.
L'analisi delle informazioni fornite dal comando ps ti offre una visione più approfondita del comportamento della tua macchina Linux.
Tecniche avanzate di ps per la gestione dei processi con il comando ps
Esploriamo alcune delle funzionalità avanzate del comando ps e come possono essere utilizzate in modo efficace:
1. Ordinamento dei processi
Il comando ps aux può essere utilizzato per ordinare l'output finale in base a diverse colonne. Ad esempio, puoi ordinare i processi in base all'ID processo o all'utilizzo della CPU per visualizzarli nell'ordine desiderato.
Ecco un esempio di ordinamento dei processi in base all'ID processo utilizzando ps aux:
ps aux –-sort pid
Il comando head viene utilizzato per ottenere solo le prime cinque righe dell'output.

2. Visualizzazione dell'albero dei processi
Se vuoi vedere chiaramente la relazione genitore-figlio dei processi, puoi utilizzare il comando ps con l'opzione forest.
ps -aux --forest

Per vedere la relazione tra i processi in uno schema ad albero, puoi anche usare il comando pstree. Questo comando creerà un output più comprensibile e illustrerà perfettamente la gerarchia tra i processi. Per utilizzare questo comando, digitare il seguente comando:
pstree [pid or username]
Assegnando a questo comando un PID, dici al comando di considerare quel processo come la radice dell'albero.
3. Processi di filtraggio
Immagina di voler lavorare con un gruppo specifico di processi; ad esempio, vuoi elencare tutti i processi di uno degli utenti. È possibile filtrare i processi in base a una caratteristica utilizzando il comando ps. In questo esempio, abbiamo filtrato i processi in base al nome utente.
ps -u [username]

E il comando ps aux grep può filtrare i processi in base a qualsiasi modello o parola chiave fornita al comando. Dai un'occhiata al codice seguente come esempio:

Questo comando elenca innanzitutto tutti i processi e passa l'output al comando grep per filtrare quel lungo elenco in base all'ID del processo. Nell'immagine sopra puoi vedere un elenco di tutti i processi che hanno il numero 15 nelle loro informazioni.
Per ulteriori informazioni sul comando ps e sulle sue capacità, puoi leggere la pagina man di questo comando. Il codice seguente mostrerà la pagina di manuale per te:
man ps
Gestione della priorità delle attività in Linux
Per spiegare meglio come funziona effettivamente la gestione dei processi in Linux, dovremmo trattare anche la priorità dei processi e come modificarla. Immagina una situazione in cui stai eseguendo diversi processi e la CPU è sovraccarica di attività. Se desideri gestire le tue risorse affinché funzionino correttamente in questa situazione, devi modificare la priorità delle attività in esecuzione. Ogni processo in Linux ha un valore di priorità. Questo valore aiuta il kernel a dare priorità alle attività. Il numero di priorità varia da -20 a 19, dove 19 indica l'attività meno importante e -20 quella più urgente. Il processo con la priorità più alta riceve più tempo CPU rispetto ad altri processi. I valori di priorità vengono spesso definiti valori “interessanti”, in cui i valori accettabili inferiori indicano una priorità più elevata.
È possibile utilizzare i comandi nice e renice per allocare in modo efficiente le risorse di sistema.
Ma prima di modificare la priorità dei processi, esploriamo il primo caso d’uso del comando ps.
- Visualizzazione della priorità corrente di tutti i processi utilizzando il comando ps:
Questo comando elenca tutti i processi insieme ai relativi ID di processo (PID), nomi di comando e priorità corrente (valore gradevole):
ps -eo pid,cmd,nice

- Avvio di un processo con un'alta priorità predefinita utilizzando il comando nice:
Puoi avviare un processo con la tua priorità preferita utilizzando questo comando:
nice -n [priority] [command]
Sostituisci [priority] con il valore negativo desiderato che rappresenta il livello di priorità e [command] con il comando che desideri eseguire.
Ecco un esempio:

- Modifica della priorità di un comando già in esecuzione:
renice -n [priority] -p [PID]
Sostituisci l'ID del processo che vuoi manipolare con [PID].
Se vuoi avere una potente macchina Linux su cui eseguire tutti i tipi di attività, a VPS Linux è la soluzione migliore per te. Cloudzy offre vari piani VPS Linux con la tua distribuzione preferita preinstallata. Con molte caratteristiche vantaggiose come il supporto 24 ore su 24, 7 giorni su 7, una politica di rimborso di 30 giorni e una garanzia di uptime del 99,95%, Cloudzy è riuscita a mantenere bassi i prezzi. I nostri prezzi per Linux VPS partono da soli $ 4,95 al mese.
Procurati un VPS Linux economico o premium per l'hosting del tuo sito web o desktop remoto, al prezzo più conveniente in circolazione. VPS in esecuzione su Linux KVM per una maggiore efficienza e funzionante su hardware potente con storage SSD NVMe per una maggiore velocità.
Per saperne di piùConclusione
In conclusione, padroneggiare la gestione dei processi e il controllo del sistema è un must per gli amministratori di sistema, gli appassionati di Linux desiderosi di saperne di più e gli utenti abituali di Linux. Conoscere le capacità e le funzionalità del comando ps può facilitare la gestione del processo di apprendimento. Ecco perché questo articolo ha discusso importanti casi d'uso del comando ps oltre a fornire ai lettori un'introduzione ai processi Linux.
Domande frequenti
Qual è il comando ps aux in Linux?
Il comando ps aux Linux è un comando comunemente utilizzato in Linux per ottenere informazioni sui processi in esecuzione. Può fornire un elenco completo di processi in un formato intuitivo, inclusi gli ID di processo (PID), l'utilizzo della CPU e della memoria, gli stati di esecuzione e altri dettagli vitali.
Quali sono i due tipi di processi in Linux?
Processi in primo piano e processi in background. I processi in primo piano occupano il terminale durante l'esecuzione e non consentono altre esecuzioni. I processi in background vengono eseguiti in background e non occupano l'intero terminale.
Come posso visualizzare l'elenco dei processi in esecuzione sul mio sistema Linux?
L'elenco dei processi in esecuzione sul tuo sistema Linux può essere ottenuto utilizzando comandi come ps, top o htop per visualizzarlo. Ad esempio, il comando Linux ps aux fornisce informazioni dettagliate su tutti i processi in esecuzione.