目次

ps

機能

psコマンドは、現在実行中のプロセスに関する情報を表示します。

引数を何も指定せずに実行すると、psコマンドはそのユーザが起動しているプロセスの情報のみを表示します。

FreeBSDやLinuxでは、オプションはハイフン(-)を付けずに指定できますが、Solarisではオプションは-を付けて指定します。

構文

ps [オプション]

オプション

オプション(FreeBSD・Linux)

オプション 意味
a自分が実行しているプロセス以外のプロセスも全て表示する。
fプロセスの親子関係をツリー上に表示する。
l詳細な情報を表示する。
uプロセスを実行しているユーザ名を表示する。
x制御端末のないプロセス(デーモンなど)も表示する。
p pidプロセスIDpidのプロセスの情報のみを表示する。
o format出力フォーマットを指定する。

format

KEYLONGDESCRIPTION
ccmdsimple name of executable
Cpcpucpu utilization
fflagsflags as in long format F field
gpgrpprocess group ID
Gtpgidcontrolling tty process group ID
jcutimecumulative user time
Jcstimecumulative system time
kutimeuser time
mmin_fltnumber of minor page faults
Mmaj_fltnumber of major page faults
ncmin_fltcumulative minor page faults
Ncmaj_fltcumulative major page faults
osessionsession ID
ppidprocess ID
Pppidparent process ID
rrssresident set size
Rresidentresident pages
ssizememory size in kilobytes
Sshareamount of shared pages
tttythe device number of the controlling tty
Tstart_timetime process was started
Uuiduser ID number
uuseruser name
vvsizetotal VM size in kB
yprioritykernel scheduling priority

オプション(Solaris)

オプション 意味
-eすべてのプロセスに関する情報を表示する。
-fプロセスを実行しているユーザ名、コマンドのパスや引数などを含む、完全なリストを表示する。
-l詳細な情報を表示する
-p pidプロセスIDpidのプロセス情報のみを表示する。

psコマンドで表示される情報

各カラムの説明

項目 意味
USERプロセスを所有しているユーザのユーザ名。
PIDプロセスID
%CPU各プロセスのCPUの使用率。
CPUを使用した時間をプロセスの実行時間で割った結果のパーセンテージで表示される。
%MEMプロセスが使用している物理メモリ量。
VSZプロセスの仮想メモリサイズ(単位はキロバイト)。
RSSVSZと似ているが仮想メモリサイズではなく、
プロセスが使用しているスワップされていない物理メモリ量(単位はキロバイト)。
TTYそのプロセスを実行している端末
STATプロセス状態(R=実行中、S=sleep中、T=停止中)
STARTプロセスを起動した時刻。
TIMECPU消費時間
プロセスが使用した全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