プロセス管理
メモリ領域などの割り当てを受けて処理を実行しているプログラムの実行単位をプロセスと言い、コマンドやプログラムを実行すると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 | メモリの制限 |