プロセス管理

 メモリ領域などの割り当てを受けて処理を実行しているプログラムの実行単位をプロセスと言い、コマンドやプログラムを実行すると1つ、または複数のプロセスがスタートします。
 システムの一部を実行するシステムプロセスと、ユーザにより実行されるユーザプロセスがあり、プロセスは必要に応じて別のプロセスを起動することができる。起動した側のプロセスを親プロセス、された側のプロセスを子プロセスという。
 linuxでは通常、多数のプロセスが動作していて、それぞれのプロセスには一意のプロセスID(PID)が割り当てられている。


プロセス情報の表示

 PIDなどのプロセス情報を一覧表示するにはps、top、pstreeがあり、psは実行中プロセスの一覧表示、topは実行中プロセスの継続表示、pstreeはプロセスの親子関係を表示します。


psコマンド
 実行中のプロセスを表示します。オプションを省略して実行すると、そのユーザが起動しているプロセスのみが表示されます。
 また、LinuxのpsコマンドはBSD系のものに似ているが、SystemV系のオプションも受け付ける為、オプションの「-」有無によっては動作の異なるものがあるので注意が必要です。

ps [オプション] プロセス
実行中プロセスの表示
主なオプション
 a:自分以外のユーザーのプロセスも表示する
 f:プロセスの親子関係をツリー形式で表示する
 u:ユーザー名や開始時間なども表示する
 x:制御端末のないデーモンなどのプロセスも表示する
 w:プロセス情報の表示行数を増やす
 j:ユーザ名、親プロセスなどの情報を表示する
 m:メモリ状態を表示する
 ttty:端末ttyが制御するプロセスのみ表示する
 U user:ユーザuserが実行しているプロセスのみ表示する
 -e:すべてのプロセスを表示する
 -l:詳細な情報を表示する


topコマンド
 プロセスの状態を継続的に表示します。デフォルトでは5秒ごとに更新され、CPU使用率の高い順に表示されるため、空きメモリやCPUの負荷状況なども真似たする事ができます。

top [オプション] トップ
プロセスの状態をリアルタイムに表示
主なオプション
 -d 秒数:指定した秒数毎に表示を更新する
 -n 回数:指定した回数分だけ表示する
 -p プロセスID:指定したPIDのみ表示する


pstreeコマンド
 プロセスは、実行中に別のプロセスを生成する事があり、このような親子関係を表示させます。
 psコマンドにfオプションを指定した場合でも、同じように親子関係がツリー表示されます。

pstree [オプション]
プロセスの親子関係の表示
主なオプション
 -c:同じ内容のプロセスをまとめて表示する
 -p:PIDも表示する


主な表示項目
 USER ユーザ名
 UID ユーザID
 PID プロセス番号
 PPID 親プロセス
 TT、TTY 制御端末
 STAT プロセスの状態
  R 実行可能状態
  S スリープ状態
  I アイドル状態
  D ディスク内
  T 停止状態
  Z ゾンビ状態
 TIME CPU時間
 COMMAND、CMD コマンド
 %CPU CPU利用率
 %MEM メモリ利用率
 SIZE 仮想イメージの大きさ(text+data+stack)
 RSS 常駐セットの大きさ
 START 開始時間
 FLAGS フラグ
 NI プロセスの優先度(nice値)
 WCHAN プロセスが休眠状態の時のカーネルの関数名
 PAGEIN ページフォルトの回数
 TSIZ テキストサイズ
 DSIZ データサイズ
 LIM メモリの制限