プロセスとは?
実行しているプログラムのことで、実行中のファイルをメモリに格納してメモリ上でCPUがプログラムを実行します。コマンドを実行するたびに新しいプロセスが作られます。
プロセスを確認するには?
psコマンドを使います。
psコマンドの各項目の意味
全ての項目はデフォルトでは表示されませんが、オプションによっては下記の詳細な列が表示されます。
列名 | 説明 |
---|---|
USER | 「ユーザー名」を示しています。 |
PID | 「プロセスID」を示しています。 |
%CPU | 「CPU使用率」を示しています。 |
%MEM | 「メモリ使用率」を示しています。 |
VSZ | 「使用している仮想メモリのサイズ」を示しています。 |
RSS | 「常駐セットの大きさ」を示しています。 |
TTY | 「制御している端末」を示しています。 |
STAT | 「プロセスの状態」を示しています。 |
START | そのプロセスが開始した「開始時刻」を示しています。 |
TIME | そのプロセスを実行するためにCPUが費やした「実行時間」を示しています。 |
CMD | 「プロセス名」を示しています。 |
psコマンドのオプション
他のコマンドのオプションと違って「-」(ハイフン)を付けないのが特徴です。もしハイフンを付けた場合は別のコマンド扱いされてしまうので注意です。
オプション | 意味 |
---|---|
e | 制御端末のあるなしに関わらず、全てのユーザープロセスを表示します。 |
a | 制御端末がある全てのユーザープロセスを表示します。 |
x | 制御端末がないプロセスも表示します。 |
u | ユーザー形式で表示します。 |
w | 出力の幅を広げます。 |
f | プロセスの親子関係をツリー上で表示します。 |
l | 詳細情報を表示します。 |
良く使われるオプションの組み合わせ
「aux」が良く使われます。全てのユーザーの全てのプロセスを詳細情報も合わせて表示してくれます。
プロセスの親子関係について
プロセスには、親子関係があります。プログラムを実行するとそれは「親プロセス」になり、親プロセスから新しくプロセスを起動したプログラムを「子プロセス」といいます。
pstreeコマンドで、その親子関係を、わかりやすく見ることができます。
上記例だと、ssh接続をした後、ログインによりbashが呼ばれて、suでユーザーを変更し、bashがまた呼ばれて、pstreeを呼んだと言う親子関係になっています。
この記事へのコメントはありません。