62

実行して実行top中のすべてのプロセスを確認するとき、私は常にすべてが実際に何を意味するのかを知りたいと思っていました。たとえば、実行中のプロセスのすべてのさまざまな1文字の状態コード(R =実行中、S =スリープ中など)

これはどこにありますか?

4

3 に答える 3

130

man ページには、状態コードが何にマッピングされているかが記載されていますが、実際の意味は記載されていません。topマニュアルページから:

'D' = uninterruptible sleep
'R' = running
'S' = sleeping
'T' = traced or stopped
'Z' = zombie

'R' が最も簡単です。プロセスは実行する準備ができており、CPU を使用する順番が来るたびに実行されます。

「S」と「D」は 2 つのスリープ状態で、プロセスが何かが起こるのを待っています。違いは、'S' はシグナルによって中断できるのに対し、'D' は中断できないことです (通常、プロセスがディスクを待っているときに見られます)。

「T」はプロセスが停止している状態で、通常はSIGSTOPまたはを介し​​て行われSIGTSTPます。デバッガー ( ) で停止することもできますptrace。その状態が表示されるのは、通常、Ctrl+Zを使用してバックグラウンドでコマンドを実行したためです。

'Z' はプロセスが死んでいる (実行が終了した) 状態であり、残っているのはカーネル上でそれを記述した構造だけです。親プロセスが終了コードを取得するのを待っていますが、それ以上ではありません。親プロセスが終了すると、それは消えます。

于 2008-11-21T01:26:37.117 に答える
15

このコマンドman topを使用して、状態を検索できます。

D = uninterruptible sleep
I = idle
R = running
S = sleeping
T = stopped by job control signal
t = stopped by debugger during trace
Z = zombie
于 2008-11-21T01:13:04.150 に答える