UNIX/Linuxの部屋 psコマンドの使い方

TOP UNIX/Linuxの部屋 UNIX/Linuxコマンド一覧 用語集 新版 由来/読み方辞書 環境変数マニュアル Cシェル変数 システム設定ファイル システムコール・ライブラリ ネットワークプログラミングの基礎知識 クラウドサービス徹底比較・徹底解説




コマンド ps 実行中のプロセスの情報を表示 このエントリーをはてなブックマークに追加

以下の情報は FreeBSD を元にしたものである。Linux や Solaris などとはオプションの構成が全く違う。BSD 系だと、自分のプロセスを見るには ps 、システム全体のプロセスを見るには ps ax、もっと詳細なものは ps aux を使う。Solaris などの SystemV 系だと、それぞれ ps、ps -ef となる。

あるプロセスの状態を見るため、
% ps ax | grep hogehoge
とすると、
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桁で表示する
デフォルトでは、端末の横幅に応じて出力幅がカットされるので、表示されない部分が出てくる可能性がある。そのため
% ps aux | grep hoge
としても、意図したプロセスを表示できないことがある。また、-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
>> Solaris10オンラインマニュアル(man) Solaris10 ps(1)
>> FreeBSDオンラインマニュアル(man) FreeBSD ps(1)
>> Linuxオンラインマニュアル(man) Linux ps(1)