Puoi usare il comando man top
per cercare gli stati:
D = uninterruptible sleep
I = idle
R = running
S = sleeping
T = stopped by job control signal
t = stopped by debugger during trace
Z = zombie
La pagina man dice a cosa sono mappati i codici di stato, ma non cosa significano effettivamente. Dal top
pagina man:
'D' = uninterruptible sleep
'R' = running
'S' = sleeping
'T' = traced or stopped
'Z' = zombie
'R' è il più semplice; il processo è pronto per essere eseguito e verrà eseguito ogni volta che arriva il suo turno di utilizzo della CPU.
'S' e 'D' sono due stati di sonno, in cui il processo è in attesa che accada qualcosa. La differenza è che 'S' può essere interrotto da un segnale, mentre 'D' no (di solito si vede quando il processo è in attesa del disco).
'T' è uno stato in cui il processo viene interrotto, di solito tramite SIGSTOP
o SIGTSTP
. Può anche essere fermato da un debugger (ptrace
). Quando vedi quello stato, di solito è perché hai usato Ctrl + Z per mettere un comando sullo sfondo.
'Z' è uno stato in cui il processo è morto (ha terminato la sua esecuzione) e l'unica cosa rimasta è la struttura che lo descrive nel kernel. Sta aspettando che il suo processo genitore recuperi il suo codice di uscita, e non molto di più. Dopo che il suo processo genitore avrà finito con esso, scomparirà.