Що означають значення стовпців STAT у ps?


163

У колонці STAT ps міститься набір букв, які насправді не мають великого сенсу. Що вони означають?

Ось приклад ps aux | head:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  27176  2960 ?        Ss   Sep20   0:02 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Sep20   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Sep20  13:05 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   Sep20   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S<   Sep20   0:00 [kworker/u:0H]
root         8  0.0  0.0      0     0 ?        S    Sep20   2:16 [migration/0]
root         9  0.0  0.0      0     0 ?        S    Sep20   0:00 [rcu_bh]
root        10  0.0  0.0      0     0 ?        S    Sep20  20:08 [rcu_sched]
root        11  0.0  0.0      0     0 ?        S    Sep20   0:07 [watchdog/0]
root        12  0.0  0.0      0     0 ?        S    Sep20   0:05 [watchdog/1]
root        13  0.0  0.0      0     0 ?        S    Sep20   2:21 [ksoftirqd/1]
root        14  0.0  0.0      0     0 ?        S    Sep20   1:00 [migration/1]

Відповіді:


266

man ps має всі відповіді під заголовком "ДЕРЖАВНІ КОДИ ПРОЦЕСУ":

PROCESS STATE CODES
       Here are the different values that the s, stat and state output specifiers (header "STAT" or "S") will display to describe the state of a process:
       D    uninterruptible sleep (usually IO)
       R    running or runnable (on run queue)
       S    interruptible sleep (waiting for an event to complete)
       T    stopped, either by a job control signal or because it is being traced.
       W    paging (not valid since the 2.6.xx kernel)
       X    dead (should never be seen)
       Z    defunct ("zombie") process, terminated but not reaped by its parent.

       For BSD formats and when the stat keyword is used, additional characters may be displayed:
       <    high-priority (not nice to other users)
       N    low-priority (nice to other users)
       L    has pages locked into memory (for real-time and custom IO)
       s    is a session leader
       l    is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
       +    is in the foreground process group.

19
До цієї відповіді я приходжу досить часто як довідник
коник

1
Цікаво, що я отримую "U" як код держави, який, здається, ніде не задокументований. Будь-яка ідея, що це означає?
Том

2
Ведучий сесії?
Марко Марсала

6
@MarcoMarsala Якщо ідентифікатор сеансу процесу такий же, як ідентифікатор процесу. Це по суті означає, що це був перший процес на сесії. Зазвичай це термінал входу, як bash, або X. Процеси групування, як сеанси, дозволяють легко очистити, коли процес лідера закінчується. Це схоже на батьківського.
Олі

2
@Oli - новий був доданий в 2017 році, I = Idle - unix.stackexchange.com/questions/462098 / ... .
slm
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.