====== ps ======
===== 機能 =====
psコマンドは、現在実行中のプロセスに関する情報を表示します。\\
引数を何も指定せずに実行すると、psコマンドはそのユーザが起動しているプロセスの情報のみを表示します。\\
FreeBSDやLinuxでは、オプションはハイフン(-)を付けずに指定できますが、Solarisではオプションは-を付けて指定します。\\
===== 構文 =====
ps [オプション]
====== オプション ======
==== オプション(FreeBSD・Linux) ====
^ オプション ^ 意味 ^
|a|自分が実行しているプロセス以外のプロセスも全て表示する。|
|f|プロセスの親子関係をツリー上に表示する。|
|l|詳細な情報を表示する。|
|u|プロセスを実行しているユーザ名を表示する。|
|x|制御端末のないプロセス(デーモンなど)も表示する。|
|p pid|プロセスIDpidのプロセスの情報のみを表示する。|
|o format|出力フォーマットを指定する。|
=== format ===
^KEY^LONG^DESCRIPTION^
|c|cmd|simple name of executable|
|C|pcpu|cpu utilization|
|f|flags|flags as in long format F field|
|g|pgrp|process group ID|
|G|tpgid|controlling tty process group ID|
|j|cutime|cumulative user time|
|J|cstime|cumulative system time|
|k|utime|user time|
|m|min_flt|number of minor page faults|
|M|maj_flt|number of major page faults|
|n|cmin_flt|cumulative minor page faults|
|N|cmaj_flt|cumulative major page faults|
|o|session|session ID|
|p|pid|process ID|
|P|ppid|parent process ID|
|r|rss|resident set size|
|R|resident|resident pages|
|s|size|memory size in kilobytes|
|S|share|amount of shared pages|
|t|tty|the device number of the controlling tty|
|T|start_time|time process was started|
|U|uid|user ID number|
|u|user|user name|
|v|vsize|total VM size in kB|
|y|priority|kernel scheduling priority|
==== オプション(Solaris) ====
^ オプション ^ 意味 ^
|-e|すべてのプロセスに関する情報を表示する。|
|-f|プロセスを実行しているユーザ名、コマンドのパスや引数などを含む、完全なリストを表示する。|
|-l|詳細な情報を表示する|
|-p pid|プロセスIDpidのプロセス情報のみを表示する。|
====== psコマンドで表示される情報 ======
===== 各カラムの説明 =====
^ 項目 ^ 意味 ^
|USER|プロセスを所有しているユーザのユーザ名。|
|PID|プロセスID|
|%CPU|各プロセスのCPUの使用率。 \\ CPUを使用した時間をプロセスの実行時間で割った結果のパーセンテージで表示される。|
|%MEM|プロセスが使用している物理メモリ量。|
|VSZ|プロセスの仮想メモリサイズ(単位はキロバイト)。|
|RSS|VSZと似ているが仮想メモリサイズではなく、 \\ プロセスが使用しているスワップされていない物理メモリ量(単位はキロバイト)。|
|TTY|そのプロセスを実行している端末|
|STAT|プロセス状態(R=実行中、S=sleep中、T=停止中)|
|START|プロセスを起動した時刻。|
|TIME|CPU消費時間 \\ プロセスが使用した全CPU時間と、そのプロセスのためにカーネルが使用した全CPU時間の合計。|
|COMMAND|コマンド|
==== STATの説明 ====
=== STAT1文字目 ===
^D|割り込み不可能なスリープ状態 (通常 IO 状態で停止中)|
^S|プロセスがスリープ状態かつ、すぐにでも実行可能状態になる可能性がある|
^R|(プロセスが実行中であることを示す)|
^T|ジョブ制御シグナルまたはトレースされているために停止中の状態|
^X|死んだ状態 (見えるべきではない)|
^Z|終了したが、親プロセスによって回収されなかった、消滅した (ゾンビ)プロセス|
=== STAT2文字目 ===
ステータス文字 意味
^>|優先度の高いプロセス (他のユーザーに対して良くない)|
^N|優先度の低いプロセス (他のユーザーに対して良い)|
^L|実メモリのページをロックして利用している (リアルタイム処理やカスタム IO向け)|
^s|セッションリーダ|
^l|マルチスレッド化されている (NPTL pthreads が行うように、CLONE_THREAD が使 われている)|
^+|フォアグラウンドのプロセスグループに含まれている|
====== コマンド例 ======
> ps 自分が起動したプロセスのみが表示する。
PID TTY STAT TIME COMMAND
323 p0 S 0:00 -csh 自分が起動したプロセスのみが表示される
404 p0 R 0:00 ps
> ps a その他の端末から起動されたプロセスも表示する。
PID TTY STAT TIME COMMAND
246 2 S 0:00 /sbin/mingetty tty2 端末tty2に対して起動しているプロセス
247 3 S 0:00 /sbin/mingetty tty3
321 1 S 0:00 /sbin/mingetty tty1
323 p0 S 0:00 -csh
405 p0 R 0:00 ps a
=== プロセスの起動時間も確認 ===
こうすると、プロセスの起動時間を確認できる
# ps ax -o pid,lstart,cmd | grep sshd
5875 Thu Jun 6 10:01:54 2013 grep sshd
7885 Thu Apr 12 13:31:26 2012 /usr/sbin/sshd
18083 Thu Jun 6 08:33:05 2013 sshd: root@pts/41
# ps axwf -o user,pid,pmem,pcpu,state,lstart,cmd | grep ssh
root 8779 0.0 0.0 S Tue Aug 30 15:11:35 2016 /usr/sbin/sshd
root 16253 0.3 0.0 S Tue Nov 15 11:48:32 2016 \_ sshd: matsui [priv]
matsui 16255 0.1 0.0 S Tue Nov 15 11:48:33 2016 \_ sshd: matsui@pts/8
{{tag>Unixコマンド ジョブ・タスク管理}}