Comando ps in Linux: vedere processi, PID e stati
ps mostra un’istantanea dei processi al momento dell’esecuzione. Permette di controllare l’identificatore del processo (PID), l’utente, lo stato e il comando per capire se un’attività risulta presente.
Dopo la stampa, ps termina: per osservare aggiornamenti periodici puoi usare top o htop. La presenza di un processo non dimostra, da sola, che un servizio risponda correttamente alle richieste.
Sintassi di base e ambito
ps [opzioni]
Questa guida descrive ps di procps-ng su Linux. Altre implementazioni possono accettare opzioni diverse: consulta man ps sul sistema interessato. Procps-ng combina opzioni Unix con un trattino, opzioni BSD senza trattino e opzioni GNU lunghe con due trattini. La grafia fa parte del significato.
Esempi pratici
Processi dell’utente nel terminale corrente
Senza argomenti, procps-ng seleziona i processi con lo stesso identificatore utente effettivo (EUID) dell’utente corrente e lo stesso terminale di chi esegue il comando. Non è quindi un elenco di tutto il sistema. In un contesto senza terminale, come un’attività automatica, questa selezione può risultare poco utile.
ps
Vista estesa dei processi
-e seleziona tutti i processi visibili e -f usa il formato completo, che include utente, PID, identificatore del processo padre (PPID) e riga di comando.
ps -ef
Campi di un PID specifico
Sostituisci 1234 con il PID da verificare. -p seleziona il processo e -o imposta le colonne nell’ordine indicato. Se il PID non esiste più, non aspettarti una riga di dati per quel processo.
ps -p 1234 -o pid,ppid,user,stat,cmd
user indica l’utente effettivo, stat lo stato con eventuali indicatori aggiuntivi e cmd la riga di comando con gli argomenti. Gli argomenti possono contenere dati riservati: controlla il risultato prima di condividerlo. comm, usato nell’esempio seguente, mostra invece il nome del comando.
Leggere PID, PPID e stato
In una shell come Bash, $$ si espande nel PID della shell corrente. Puoi usarlo per provare una selezione concreta senza indovinare un numero:
ps -o pid,ppid,stat,comm -p $$
Esempio illustrativo: numeri, stato e nome del comando dipendono dalla sessione e non sono un risultato fisso.
PID PPID STAT COMMAND
4321 4100 Ss bash
Il PID identifica il processo e il PPID il suo padre. In Ss, S significa attesa interrompibile e la s minuscola indica il leader di una sessione. Altri stati comuni sono R (in esecuzione o pronto a eseguire), D (attesa non interrompibile, spesso per I/O), T (arrestato dal controllo dei job) e Z (terminato, ma non ancora raccolto dal padre). Uno stato di attesa non prova da solo un guasto.
La prova disponibile in Windows con Git Bash usa ps (cygwin) 3.6.7: il tentativo con -o termina con «unknown option -- o». Questa implementazione non riproduce i campi e gli stati di procps-ng; l’esempio va verificato su Linux con l’implementazione indicata.
Opzioni e formati principali
| Opzione o formato | Significato in procps-ng |
|---|---|
-e |
Seleziona tutti i processi visibili. |
-f |
Usa il formato completo e include gli argomenti del comando. |
-p PID |
Seleziona il PID indicato. |
-o elenco_colonne |
Specifica campi e ordine dell’output. |
aux |
Combina la selezione BSD estesa a tutti gli utenti, anche senza terminale, con il formato orientato all’utente. |
In ps aux non aggiungere automaticamente un trattino: ps -aux può avere un significato diverso, legato anche all’esistenza di un utente chiamato x. Inoltre -e non supera i limiti di visibilità imposti da contenitori, namespace o restrizioni del sistema.
Precauzioni durante la ricerca
Con ps | grep nome può comparire anche il processo grep usato per cercare; la selezione iniziale di ps rimane comunque limitata. Per una ricerca per nome può essere più adatto pgrep. Nomi simili non bastano a identificare con certezza il processo desiderato.
I processi possono terminare subito dopo la lettura e i PID possono essere riutilizzati. Prima di inviare un segnale, ricontrolla PID, utente e comando: una vecchia riga non garantisce che il numero appartenga ancora alla stessa attività. I comandi mostrati qui consultano informazioni, senza inviare segnali o modificare processi.
Domande frequenti
Qual è la differenza tra ps e top?
ps stampa una selezione dei processi e termina. top aggiorna periodicamente la schermata, permettendo di osservare i cambiamenti nel tempo. Sono utili per controlli diversi; una singola istantanea non mostra l’intero andamento di un carico.
Documentazione di riferimento
Per i campi disponibili, le regole di selezione e le differenze tra le grafie delle opzioni, consulta il manuale ps(1) di procps-ng e confrontalo con man ps della tua installazione.




