ps commandは、システムで稼働中のプロセスに関しての情報を出力するコマンドです。
ps commandは、システムで稼働中のプロセスに関しての情報を出力するコマンドです。
オプション無しでps commandを実行した場合、制御端末を持つ自分 (あなた) のプロセスの情報を表示します。
# ps PID TT STAT TIME COMMAND 16314 p0 Is 0:00.13 bash 19531 p0 I 0:31.27 xemacs index.html (xemacs-21.4.15) 24936 p0 R+ 0:00.00 ps 25587 C0 Is 0:00.22 -bash (bash)
オプション無しの場合、制御端末のないプロセスは表示しませんが、x
"オプションを付けて実行すると、制御端末のないプロセスも表示します。
# ps x PID TT STAT TIME COMMAND 23365 ?? ZW 0:00.00 (xsetroot) 20026 ?? Is 0:01.07 sawfish 4222 ?? I 0:00.35 kterm 16314 p0 Is 0:00.17 bash 19531 p0 I 0:48.14 xemacs index.html (xemacs-21.4.15) 12835 p0 R+ 0:00.00 ps -x 25587 C0 Is 0:00.22 -bash (bash)
a
オプションを付けて実行すると、自分のプロセスに加え自分以外のプロセスの情報も同様に表示します。
# ps a PID TT STAT TIME COMMAND 17740 p0- I 0:00.53 kterm 24168 p0 Is 0:00.09 bash 4611 p0 R+ 0:00.00 ps -a 28753 p1 Is 0:00.18 bash ........ 23710 C1 Is 0:00.14 -sh (sh) 29705 C1 I+ 0:33.77 cvsup /mnt/cvsroot/OpenBSD/cvsup/cvs 22194 C2 Is+ 0:00.01 /usr/libexec/getty Pc ttyC2 6629 C3 Is+ 0:00.01 /usr/libexec/getty Pc ttyC3 8302 C5 Is+ 0:00.01 /usr/libexec/getty Pc ttyC5
ただし、a
オプションだけでは、制御端末のあるプロセスだけしか表示されませんので、完全に全てのプロセスを表示させる場合は、x
オプションを追加して実行させます。
# ps ax PID TT STAT TIME COMMAND 1 ?? Is 0:00.03 /sbin/init 19362 ?? Is 0:00.20 syslogd: [priv] (syslogd) 21029 ?? Is 0:00.02 pflogd: [priv] (pflogd) 14942 ?? I 1:22.31 pflogd: [running] -s 116 -f /var/log/pflog (pflogd) 16402 ?? Is 0:00.00 named: [priv] (named) 31294 ?? I 1:48.96 named 27082 ?? Is 1:05.24 httpd: parent (httpd) 2068 ?? Is 0:04.22 inetd ........ 22007 C0- I 0:00.00 /usr/local/bin/jserver 25587 C0 Is+ 0:00.26 -bash (bash) 23710 C1 Is 0:00.14 -sh (sh) 29705 C1 I+ 0:38.03 cvsup /mnt/cvsroot/OpenBSD/cvsup/cvs 22194 C2 Is+ 0:00.01 /usr/libexec/getty Pc ttyC2 6629 C3 Is+ 0:00.01 /usr/libexec/getty Pc ttyC3 8302 C5 Is+ 0:00.01 /usr/libexec/getty Pc ttyC5
u
オプションを付けて実行すると、user, pid, %cpu, %mem,vsz, rss, tt, state, start, time, commandのキーワードに関する情報が表示されます。
# ps u USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND test 16084 2.9 3.8 13360 14716 p1 S 4:05PM 0:19.38 xemacs ps.htm test 17740 0.0 0.6 604 2536 p0- S 3:54PM 0:00.24 kterm test 24168 0.0 0.3 684 1240 p0 Ss 4:07PM 0:00.05 bash test 14934 0.0 0.0 300 172 p0 R+ 4:10PM 0:00.00 ps -ux test 28753 0.0 0.3 676 1288 p1 Is+ 3:54PM 0:00.10 bash test 32750 0.0 0.6 556 2512 p1 S 4:07PM 0:00.09 kterm test 25587 0.0 0.3 716 1340 C0 Is+ 9Aug04 0:00.26 -bash (bash)
v
オプションを付けて実行すると、pid, state, time, sl, re,pagein, vsz, rss, lim, tsiz, %cpu, %mem, commandのキーワードに関する情報が表示されます。
# ps v PID STAT TIME SL RE PAGEIN VSZ RSS LIM TSIZ %CPU %MEM COMMAND 16084 I 0:28.91 0 127 1 13360 14744 357300 1340 2.1 3.8 xemacs ps 25587 Is+ 0:00.26 127 127 1 716 1340 357300 452 0.0 0.3 -bash (ba 24168 Is+ 0:00.05 127 127 0 684 1240 357300 452 0.0 0.3 bash 28753 Ss 0:00.12 0 127 0 676 1288 357300 452 0.0 0.3 bash 17740 S 0:00.30 0 127 75 608 2540 357300 108 0.0 0.7 kterm 32750 S 0:00.11 3 127 0 556 2520 357300 108 0.0 0.6 kterm 18279 R+ 0:00.00 0 0 0 292 172 357300 164 0.0 0.0 ps -v
j
オプションを付けて実行すると、user, pid, ppid, pgid,jobc, state, tt, time, commandのキーワードに関する情報が表示されます。
# ps j USER PID PPID PGID SESS JOBC STAT TT TIME COMMAND test 17740 1 17740 e7a1c510 0 I p0- 0:00.55 kterm test 24168 32750 24168 e7a1c570 0 Is+ p0 0:00.12 bash test 28753 17740 28753 e7a1c4b0 0 Is p1 0:00.19 bash test 16084 28753 16084 e7a1c4b0 1 I p1 2:05.06 xemacs ps.html test 32750 28753 32750 e7a1c4b0 1 I p1 0:01.11 kterm test 13218 28753 13218 e7a1c4b0 1 R+ p1 0:00.00 ps -j test 25587 1 25587 e7a1c3c0 0 Is+ C0 0:00.26 -bash (bash)
unixのプロセスには、固有のIDやグループ化されたID等が割り付けられています。
このキーワードは現在のプロセスの状態を表す。プロセスの状態は複数の文字で表されていて、最初の文字は下記の状態を表します。
文字 | 状態 |
---|---|
D | プロセスはディスク(あるいは他の割り込み不可能な短期間の)待ち状態です。 |
I | プロセスは idle状態 (20 秒以上 sleep している) |
R | プロセスは 実行状態です |
S | プロセスは 20 秒未満の sleep状態 |
T | プロセスは stop している状態 |
Z | プロセスは死んでいる状態 (ゾンビ) |
それ以降の文字列は、下記の状態を表します。
文字 | 状態 |
---|---|
W | プロセスはスワップアウトされている |
> | プロセスはメモリ要求に対するソフトリミットが指定されている |
VSZは、仮想記憶上のメモリ使用量(Kbyte)を表します。RSSは物理メモリ上の常駐サイズ(Kbyte)を表します。
%cpuは過去1分間のCPUに対する使用率を表します。%memは過去1分間のメモリに対する使用率を表します。
PRIは、 スケジューリング優先度を表し、この数字が小さいほどスケジューリング優先度が高くなります。NIは現在のnice値を表します。
flagsは、 16進数の論理和で表してあり、プロセスの状態が示されている。この情報は、O
オプションを使用して明示的に指定してやらないと表示されない。
# ps -O flags PID F TT STAT TIME COMMAND 30733 4086 p0 Is+ 0:00.18 -bash (bash) 9258 44186 p0 I 0:00.59 kterm 6968 4086 p0 I 1:05.26 xemacs ps.html (xemacs-21.4.15) 32530 4086 p1 Is 0:00.14 bash 12322 4006 p1 R+ 0:00.00 ps -O flags
Fのキーワードがflagsの値を示しており、この値はシステム固有のとなります。
wchanは、プロセスがイベント待でwaitしている時、どのイベントを待っているかがシンボル名で表示されます。
これは、waitした時のシステム内のアドレスがシンボル名に変換されて出力されます。数字で表示される時には、アドレスの最初の部分は削られてその結果が 16 進で表示されます。例えば 0x80324000 では 324000 と表示されます。
nwchanは、wchanのアドレス表示となります。これは、O
オプションで指定してあげないと表示されません。
# ps l -O nwhan UID PID PPID CPU PRI NI VSZ RSS WCHAN STAT TT TIME COMMAND WCHAN 1000 30733 19605 0 10 20 708 1328 wait Is p0 0:00.23 -bash (bash) e7a24dc4 1000 6968 30733 2 2 20 13576 15168 poll I p0 2:00.84 xemacs ps.html ( d03b5268 1000 9059 30733 0 2 20 1128 3092 select I p0 0:00.71 kterm d03b5268 1000 22401 30733 0 10 20 84 492 wait I+ p0 0:00.01 man ps e7c7b8d4 1000 7540 22401 0 18 20 364 292 pause I+ p0 0:00.00 sh -c sh e7c9887c 1000 17607 7540 0 3 20 212 820 ttyin I+ p0 0:00.04 /usr/local/bin/j d0b59108 1000 32072 9059 0 10 20 684 1296 wait Is p1 0:00.21 bash e7c7b654 1000 7794 32072 0 28 20 304 172 - R+ p1 0:00.00 ps -l -O nwchan 0