コマンド
ps
実行中のプロセスの情報を表示
以下の情報は FreeBSD を元にしたものである。Linux や Solaris などとはオプションの構成が全く違う。BSD 系だと、自分のプロセスを見るには ps 、システム全体のプロセスを見るには ps ax、もっと詳細なものは ps aux を使う。Solaris などの SystemV 系だと、それぞれ ps、ps -ef となる。
あるプロセスの状態を見るため、
とすると、
483 ?? I 0:00.07 /usr/bin/hogehoge
3094 p2 S+ 0:00.01 grep hogehoge
と、grep 自身のプロセスまで表示されることがある。それを防ぐには
% ps ax | grep hogehoge | grep -v hogehoge
や、
% ps ax | grep '[ h]ogehoge'
とするとよい。
以下は BSD 系のオプション。
-a 他ユーザが実行したプロセスも表示
-e 各プロセスが reference (?)している環境変数を表示
-j 各プロセスの詳細な情報を表示
(user pid ppid pgid sess jobc state tt time command)
-m メモリの使用量でソートする
-p num 指定したプロセスIDの情報を表示
-r CPUに使用量でソートする
-u 各プロセスの詳細な情報を表示 (SystemV の -u は BSD の -U と同じ)
(user pid %cpu %mem vsz rss tt state start time command)
-U user 指定ユーザが実行したプロセスを表示
-v 各プロセスの詳細な情報を表示
-w 1行132桁で表示する
デフォルトでは、端末の横幅に応じて出力幅がカットされるので、表示されない部分が出てくる可能性がある。そのため
としても、意図したプロセスを表示できないことがある。また、-ww とすると、必要なだけ横幅を広げる。
%CPU CPUの使用率
%MEM メモリの使用率
ACFLAG
COMMAND
CPU
FLAGS
INBLK
JOBC
KTRACE
KTRACEP
LIM
LOGNAME
LSTART
MAJFLT
MINFLT
MSGRCV
MSGSND
NICE
NIVCSW
NSIGS
NSAWP
NVCSW
NWCHAN
OUBLK
PGID
PID プロセスID
PPID 親プロセスID
PRI
RSS
SESS
STAT
STARTED プロセスの開始時刻
TIME
TT 端末名
UID ユーザID
USER プロセスを実行したユーザ名
VSZ
WCHAN