例えば ps aux コマンドで実行中のプロセスを調べると、STAT 列があることに気づくでしょう。この列のコードを理解することは、プロセス管理を習得するための鍵となります。各コードは特定のlinux process state(Linux プロセス状態)を表します。
ps aux
A process state in Linux(Linux におけるプロセス状態)は、プロセスが現在何をしているかのスナップショットを提供します。CPU をアクティブに使用しているのか、入力を待っているのか、それとも終了したのか?最も一般的に遭遇する状態を見ていきましょう。
一般的なプロセス状態コードの解読
STAT 列は現在のlinux process state(Linux プロセス状態)を示します。多くの可能な状態がありますが、最も頻繁に見かけるのは以下のものです。これらのlinux process states explained(Linux プロセス状態の説明)があれば、システムの動作を診断するのに役立ちます。
-
R (Running or Runnable): この状態のプロセスは、CPU コアでアクティブに実行されているか、CPU コアが利用可能になり次第実行される準備ができた実行キュー内にいます。
-
S (Interruptible Sleep): これは最も一般的なprocess states in Linux(Linux におけるプロセス状態)の 1 つです。プロセスは、端末からのユーザー入力やネットワークパケットの到着など、イベントが完了するのを待っています。シグナルによってウェイクアップできるため、「割り込み可能」です。
-
D (Uninterruptible Sleep): このプロセスもスリープ状態ですが、シグナルによって中断できない状態にあります。これは通常、プロセスの中断が状態の破損につながる可能性がある I/O 操作中に短時間使用されます。プロセスがこの状態に長時間留まる場合、ハードウェアまたはドライバに問題がある可能性があります。
-
Z (Zombie): ゾンビプロセスは実行を終了しましたが、プロセス表にエントリが残っています。親プロセスが終了ステータスを読み取るのを待っています。少数のゾンビは正常ですが、多数存在する場合は親アプリケーションのバグを示している可能性があります。
-
T (Stopped): この状態は、ジョブ制御シグナル(
Ctrl+Zを押すなど)によってプロセスが一時停止された場合、またはデバッガによってトレースされている場合にプロセスが移行します。SIGCONTシグナルで再開できます。
これらの基本的なlinux process states(Linux プロセス状態)を理解することで、システムアクティビティに対するより深い洞察を得て、実行中のアプリケーションをより効果的に管理できるようになります。