Ответ 1
В справочной странице указано, на что сопоставляются коды состояний, но не то, что они на самом деле означают. На странице верхнего уровня:
'D' = uninterruptible sleep
'R' = running
'S' = sleeping
'T' = traced or stopped
'Z' = zombie
'R' - самый простой; процесс готов к запуску и будет запускаться всякий раз, когда наступает его очередь использовать процессор.
'S' и 'D' - это два состояния ожидания, в которых процесс ожидает чего-то. Разница в том, что "S" может быть прерван сигналом, а "D" не может (обычно это видно, когда процесс ждет диск).
'T' - это состояние, в котором процесс останавливается, обычно через SIGSTOP
или SIGTSTP
. Он также может быть остановлен отладчиком (ptrace
). Когда вы видите это состояние, обычно это потому, что вы использовали Ctrl-Z, чтобы поместить команду в фоновый режим.
'Z' - это состояние, в котором процесс мертв (он завершил выполнение), и остается только структура, описывающая его в ядре. Он ждет, пока его родительский процесс получит код выхода, и не намного больше. После завершения его родительского процесса он исчезнет.