EN JA
PS(1)
PS(1) FreeBSD General Commands Manual PS(1)

名称

psプロセス状態

書式

ps [ -aCcdefHhjlmrSTuvwXxZ][ -O fmt | -o fmt][ -G gid[ , gid...]][ -M core][ -N system][ -p pid[ , pid...]][ -t tty[ , tty...]][ -U user[ , user...]]

ps [ -L]

解説

ps ユーティリティは、ヘッダ行を表示し、続いて、制御端末があるすべての利用者のプロセスに関する情報を含む行を表示します。 -x オプションが指定されなら、 ps は、制御端末がないプロセスも表示します。

-a, -G, -p, -T, -t-U オプションの任意の組み合わせを使用することによって、表示のための異なった組のプロセスを選択することができます。これらのオプションが複数与えられるなら、 ps は、少なくとも与えられたオプションの 1 つにマッチするすべてのプロセスを選択します。

表示するために選択されたプロセスに関して、 ps は、通常 1 つのプロセスごとに 1 行で表示します。 -H オプションは、いくつかのプロセスに対して (1 つのスレッドごとに 1 行の) 複数の出力行の結果となります。デフォルトで、これらのすべての出力行は、最初に制御端末、次にプロセス ID によってソートされます。 -m, -r, -u-v オプションは、ソート順序を変更します。 2 つ以上のソートオプションが与えられるなら、選択されたプロセスは、指定された最後のソートオプションによってソートされます。

表示するために選択されたプロセスに関して、表示する情報は、1 連のキーワードに基づいて選択されます ( -L, -O-o オプションを参照)。デフォルトの出力形式は、プロセスごとに、プロセスの ID、制御端末、状態、 CPU 時間 (ユーザ時間とシステム時間の両方を含む) と関連するコマンドを含みます。

オプションは、次の通りです:

-a
利用者自身に加えて他のユーザのプロセスに関する情報を表示します。 security.bsd.see_other_uids sysctl が 0 に設定されるなら、このオプションは、ユーザの UID が 0 である場合のみ、サポートされます。
-c
“コマンド”カラムの出力をコマンド行いっぱいではなく、実行形式の名前だけを含むように変更します。
-C
“常駐”時間 (これは、通常効果がありません) を無視して、CPU のパーセンテージを“生の” CPU 計算を使用することによって計算する方法に変更します。
-d
プロセスを先祖から子孫の順に、兄弟と親/子供関係を表示する段付けされたテキストで各コマンドを前に置いて並べます。また、 -m-r オプションのいずれかが使用されるなら、それらは、兄弟のプロセスがどのようにお互いに関連してソートされるかを制御します。このオプションは、“command”カラムが表示された最後のカラムでないなら、効果はないことに注意してください。
-e
同様に環境も表示します。
-f
スワップアウトされたプロセスに関してコマンド行と環境情報を表示します。ユーザの UID が 0 である場合のみ、このオプションは、支持されます。
-G
指定された実グループ ID で実行しているプロセスに関する情報を表示します。
-H
各プロセスに関連した カーネルで可視 のスレッドをすべて表示します。使用中であるスレッド化されたパッケージによって、これは、プロセスだけ、カーネルのスケジュールされた実体、またはすべてのプロセススレッドを表示します。
-h
情報のページごとに 1 つのヘッダを保証するのに必要なたびに情報ヘッダを繰り返します。
-j
次のキーワードに関連する情報を印刷 (表示) します: user, pid, ppid, pgid, sid, jobc, state, tt, timecommand
-L
-O-o オプションに対して利用可能な一連のキーワードをリストします。
-l
次のキーワードに関連する情報を表示します: uid, pid, ppid, cpu, pri, nice, vsz, rss, mwchan, state, tt, timecommand
-M
現在実行しているシステムの代わりに、指定されたコアから名前リストに関連する値を抽出します。
-m
制御端末順とプロセス ID の組み合わせの代わりに、メモリの使用量でソートします。
-N
システムがブートしたカーネルイメージから抽出するデフォルトの代わりに、指定されたシステムから名前リストを抽出します。
-O
プロセス ID、デフォルトの情報の表示の後に、指定されたキーワードの空白またはコンマで区切られたリストに関連する情報を追加します。キーワードは、等号 (‘ =’) と文字列で付け加えられます。これによって、印刷 (表示) されるヘッダは、標準のヘッダの代わりに指定された文字列を使用します。
-o
指定されたキーワードの空白またはコンマで区切られたリストに関連している情報を表示します。リストの最後のキーワードは、等号 (‘ =’) サインと、引数の残りにわたって、空白とコンマ文字を含むことができる文字列ともに追加できます。これによって、印刷 (表示) されるヘッダは、標準のヘッダの代わりに指定された文字列を使用します。また、複数のキーワードは、2 つ以上の -o オプションの形式で与えることができます。それで、複数のキーワードのためのヘッダテキストを変更することができます。すべてのキーワードに空のヘッダテキストがあるなら、ヘッダ行は、書き込まれません。
-p
指定されたプロセス ID に一致するプロセスに関する情報を表示します。
-r
制御端末とプロセス ID の組み合わせの代わりに、現在の CPU の使用量によってソートします。
-S
プロセス時間、(すなわち、cputime、systime と usertime) が、それらの親プロセスにすべての終了した子プロセスを合計することによって計算される方法を変更します。
-T
標準入力に関連するデバイスにアタッチされたプロセスに関する情報を表示します。
-t
指定された端末デバイスにアタッチされたプロセスに関する情報を表示します。省略形 ( tt キーワードの説明を参照) と同様にフルパス名を指定することができます。
-U
指定された (複数の) ユーザ名に属するプロセスを表示します。
-u
次のキーワードに関連する情報を表示します: user, pid, %cpu, %mem, vsz, rss, tt, state, start, timecommand-u オプションは、 -r オプションの意味を含みます。
-v
次のキーワードに関連する情報を表示します: pid, state, time, sl, re, pagein, vsz, rss, lim, tsiz, %cpu, %memcommand-v オプションは、 -m オプションの意味を含みます。
-w
ウィンドウのサイズであるデフォルトの代わりに、情報を表示するために 132 カラムを使用します。 -w オプションが 2 度以上指定されるなら、 ps は、ウィンドウのサイズを考慮せずに、必要な数のカラムを使用します。このオプションは、“command”カラムが表示される最後のカラムでないなら、効果がないことに注意してください。
-X
他のオプションによって一致するプロセスを表示するとき、制御端末がないあらゆるプロセスをスキップします。これは、デフォルトの振る舞いです。
-x
他のオプションによって一致するプロセスを表示するとき、制御端末がないプロセスも含めます。これは、 -X オプションの反対です。 -X-x の両方が同じコマンドで指定されるなら、 ps は、最後に指定されたものを使用します。
-Z
mac(4) ラベルを ps が情報を表示するためのキーワードのリストに追加します。

利用可能なキーワードの完全なリストは、以下にリストされます。これらのキーワードのいくつかは、さらに次のように指定されます:

%cpu
プロセスの CPU 稼働時間。これは、(実際の) 時間の 1 分前までの減衰平均です。これが計算される時間の基準が (プロセスが生じたばかりかもしれないので) 変わるので、すべての %cpu フィールドの合計は、100% を越える可能性があります。
%mem
このプロセスによって使用される実際のメモリのパーセンテージ。
class
プロセスに関連するログインクラス。
flags
インクルードファイル < sys/proc.h> にあるようなプロセスに関連するフラグ:
P_ADVLOCK 0x00001 プロセスは, POSIX アドバイザリロックを保持している
P_CONTROLT 0x00002 制御端末がある
P_KTHREAD 0x00004 カーネルスレッド
P_FOLLOWFORK 0x00008 新しい子プロセスにデバッガをアタッチする
P_PPWAIT 0x00010 親プロセスは, 子プロセスが exec/exit するのを待っている
P_PROFIL 0x00020 開始されたプロファイルがある
P_STOPPROF 0x00040 プロファイルを停止する要求中のスレッドがある
P_HADTHREADS 0x00080 スレッドがある (ショートカットのクリーンアップなし)
P_SUGID 0x00100 最後の exec 以来の SET ID 特権がある
P_SYSTEM 0x00200 システムプロセス: シグナル, stat またはスワップなし
P_SINGLE_EXIT 0x00400 サスペンド中のスレッドは, 待たずに exit すべき
P_TRACED 0x00800 デバッグプロセスは, トレースされている
P_WAITED 0x01000 誰かが我々を待っている
P_WEXIT 0x02000 終了動作中
P_EXEC 0x04000 exec を呼び出されたプロセス
P_WKILLED 0x08000 kill される, カーネル/ユーザ境界 ASAP に行く
P_CONTINUED 0x10000 プロセスは, 停止中の状態から継続されている
P_STOPPED_SIG 0x20000 SIGSTOP/SIGTSTP のために停止された
P_STOPPED_TRACE 0x40000 トレースのために停止された
P_STOPPED_SINGLE 0x80000 1 つのスレッドのみ継続可能
P_PROTECTED 0x100000 メモリのオーバコミットで kill しない
P_SIGEVENT 0x200000 変更されたプロセス保留中のシグナル
P_SINGLE_BOUNDARY 0x400000 スレッドは, ユーザ境界でサスペンドするべき
P_HWPMC 0x800000 プロセスは, HWPMC を使用している
P_JAILED 0x1000000 プロセスは, jail 中
P_ORPHAN 0x2000000 デバッガに再教育されたオリジナルの親プロセスによって孤児にされた
P_INEXEC 0x4000000 プロセスは, execve() 中
P_STATCHILD 0x8000000 子プロセスは, 停止したか, 終了した
P_INMEM 0x10000000 メモリにロードされた
P_SWAPPINGOUT 0x20000000 プロセスは, スワップアウトされている
P_SWAPPINGIN 0x40000000 プロセスは, スワップインされている
P_PPTRACE 0x80000000 vfork された子プロセスは, ptrace (PT_TRACEME) を発行した
label
プロセスの MAC ラベル。
lim
setrlimit(2) の呼び出しによって指定される、メモリ使用についてのソフト制限。
lstart
strftime(3) に記述されている‘ %c’形式を使用して、開始されたコマンドの正確な時間。
lockname
プロセスが現在ブロックさあれているロックの名前。名前が無効または未知であるなら、“???”が表示されます。
logname
プロセスが属しているセッションに関連しているログイン名 ( getlogin(2) を参照)
mwchan
プロセスが通常ブロックされているなら、イベント名、プロセスがロックでブロックされているなら、ロック名。詳細については、wchan と lockname キーワードを参照してください。
nice
プロセススのケジューリングを増加する ( setpriority(2) を参照)。
rss
(1024 バイト単位の) プロセスの実際のメモリ (常駐部分の) サイズ。
start
開始されたコマンドの時間。コマンドが 24 時間以内に開始されたなら、開始時刻は、 strftime(3) に記述されている“ %l:ps.1p”形式を使用して表示されます。コマンドが 7 日以内に開始されたなら、開始時刻は、“ %a6.15p”形式を使用して表示されます。そうでなければ、開始時刻は、“ %e%b%y”形式を使用して表示されます。
state
状態は、文字のシーケンスによって与えられます、例えば、“ RWNA”。最初の文字は、プロセスの実行状態を示します:

D
ディスク中のプロセス (または他の単期間, 割り込み不可能) を wait とマークする。
I
(約 20 秒以上 sleep している) idle であるプロセスをマークする。
L
ロックを獲得するために wait しているプロセスをマークする。
R
runnable プロセスとマークする。
S
約 20 秒未満 sleep しているプロセスをマークする。
T
stop しているプロセスをマークする。
W
idle の割り込みスレッドをマークする。
Z
死んでいるプロセス (“ゾンビ”) とマークする。

これらの後に、追加の文字があるなら、追加の状態情報を示します:

+
プロセスは、その制御端末のフォアグラウンドのプロセスグループにあります。
<
プロセスは、CPU のスケジュール優先度を上げました。
E
プロセスは、終了しようとしています。
J
プロセスは、 jail(2) にあります。 jail のホスト名を /proc/< pid> /status で見つけることができます。
L
プロセスには、 (例えば、生の I/O のための) コア中にロックされたページがあります。
N
プロセスは、CPU のスケジュール優先度 ( setpriority(2) 参照) を減らされました。
s
プロセスは、セッションリーダです。
V
プロセスは、 vfork(2) の間に、サスペンドされています。
W
プロセスは、スワップアウトされています。
X
プロセスは、トレースされているか、またはデバッグされています。
tt
もしあるなら、制御端末のパス名の省略形。省略形は、 /dev/tty に続く 3 文字か、または擬似端末に対しては、 /dev/pts の対応するエントリから成ります。プロセスがもはやその制御端末に到着することができないなら (すなわち、それが無効にされているなら)、これは、‘ -’が続きます。前の 2 つの文字の省略形または擬似端末デバイス番号のない‘ -’は、制御端末がなかったプロセスを示します。制御端末のフルパス名は、 tty キーワードによって利用可能です。
wchan
プロセスがウェートしているイベント (システム内のアドレス)。数値で印刷 (表示) されるとき、アドレスの最初の部分は、取り除かれ、結果は、16 進数で印刷 (表示) されます、例えば、0x80324000 は、324000 で印刷 (表示) されます。

command キーワードを使用して印刷 (表示) するとき、終了していて、プロセスをまだウェートしていない親があるプロセス (言い換えれば、ゾンビ) は、“ <defunct>”としてリストされ、終了しようと試みている間にブロックされたプロセスは、“ <exiting>”としてリストされます。引数を見つけることができないなら (通常、システムプロセス、および/または、カーネルスレッドの場合のように、それが設定されていないので)、コマンド名は、角括弧に囲まれて印刷 (表示) されます。 ps ユーティリティは、(それらが kern.ps_arg_cache_limit sysctl の値より短かいなら) 最初に、カーネルによってキャッシュされた引数を得よう試みます。プロセスは、 setproctitle(3) で示された引数を変更することができます。そうでなければ、 ps は、プロセスがメモリまたはスワップ領域を検査することによって作成されたとき、与えられたファイル名と引数として推測に基づいて行なわれます。方法は、本質的にいくらか信頼できず、いずれにしても、プロセスは、この情報を破壊する資格を与えられます。しかしながら、ucomm (アカウンティング) キーワードは、頼りになります。引数が利用不可能か、または ucomm キーワードと一致しないなら、 ucomm キーワードのための値は、括弧内の引数に追加されます。

キーワード

次は、利用可能なキーワードとそれらの意味の完全なリストです。それらのいくつかには、別名 (同義語であるキーワード) があります。

%cpu
CPU の使用率 (別名 pcpu)
%mem
メモリの使用率 (別名 pmem)
acflag
アカウントのフラグ (別名 acflg)
args
コマンドと引数
class
ログインクラス
comm
コマンド
command
コマンドと引数
cow
コピーオンライト (copy-on-write) の失敗の数
cpu
(スケジューリングのための) 短期間の CPU の使用因数
dsiz
データサイズ (K バイト単位)
emul
システムコールのエミュレーション環境
etime
累積実行時間、形式[ 日-][ 時間:]分:秒
etimes
累積実行時間、10 進整数秒単位
fib
デフォルトの FIB 番号、 setfib(1) 参照
flags
16 進数のプロセスフラグ (別名 f)
gid
実効グループ ID (別名 egid)
group
(egid の) グループ名 (別名 egroup)
inblk
ブロック読み込みの合計 (別名 inblock)
jid
jail ID
jobc
ジョブ制御カウント
ktrace
トレースのフラグ
label
MAC ラベル
lim
メモリ使用の制限
lockname
(シンボリック名として) 現在ブロックされているロック
logname
セッションを開始したユーザのログイン名
lstart
開始された時刻
lwp
プロセスのスレッド ID
majflt
ページフォルトの合計
minflt
ページ再要求の合計
msgrcv
受信されたメッセージの合計 (パイプ/ソケットからの読み込み)
msgsnd
送信されたメッセージの合計 (パイプ/ソケットへの書き込み)
mwchan
現在ブロックされている wait チャネルまたはロック
nice
nice 値 (別名 ni)
nivcsw
自発的でない (involuntary) コンテキストスイッチの合計
nlwp
プロセスに結びつけられたスレッドの数
nsigs
獲得されたシグナルの合計 (別名 nsignals)
nswap
スワップイン/スワップアウトの合計
nvcsw
自発的なコンテキストスイッチの合計
nwchan
wait チャネル (アドレスとして)
oublk
書き込まれたブロックの合計 (別名 oublock)
paddr
プロセスポインタ
pagein
ページイン (majflt と同様)
pgid
プロセスグループ番号
pid
プロセス ID
ppid
親のプロセス ID
pri
スケジューリングの優先度
re
コアに常駐している時間 (秒単位; 127 = 無限)
rgid
実グループ ID
rgroup
(rgid の) グループ名
rss
常駐セットサイズ
rtprio
リアルタイムの優先度 (101 = 実時間プロセスではない)
ruid
実ユーザ ID
ruser
(ruid の) ユーザ名
sid
セッション ID
sig
保留中のシグナル (別名 pending)
sigcatch
捕獲されたシグナル (別名 caught)
sigignore
無視されたシグナル (別名 ignored)
sigmask
ブロックされたシグナル (別名 blocked)
sl
スリープ時間 (秒単位; 127 = 無限)
ssiz
スタックサイズ (K バイト単位)
start
開始された時刻
state
シンボリックのプロセス状態 (別名 stat)
svgid
setgid 実行形式の保存された gid
svuid
setuid 実行形式の保存された uid
systime
累積されたシステムの CPU 時間
tdaddr
スレッドのアドレス
tdev
制御端末のデバイス番号
time
累積された CPU 時間、ユーザ + システム (別名 cputime)
tpgid
制御端末のプロセスグループ ID
tsid
制御端末のセッション ID
tsiz
テキストサイズ (K バイト単位)
tt
制御端末名 (2 文字の省略形)
tty
制御端末の完全な名前
ucomm
アカウンティングのために使用される名前
uid
実効ユーザ ID (別名 euid)
upr
システムコールから返るときのスケジューリングの優先度 (別名 usrpri)
uprocp
プロセスのポインタ
user
(UID の) ユーザ名
usertime
累積されたユーザの CPU 時間
vsz
キロバイト単位の仮想サイズ (別名 vsize)
wchan
wait チャネル (シンボル名として)
xstat
終了ステータスまたは停止ステータス (停止されるプロセスか、またはゾンビプロセスに対してのみ有効)

-H オプションが指定されていないとき、 pending カラムは、プロセスキューで保留中 (pending) のシグナルのビットマスクを表示し、そうでなければ、保留中のシグナルのスレッド毎のキューが表示されることに注意してください。

環境変数

次の環境変数は、 ps の実行に影響します:
COLUMNS
設定されるなら、ユーザの好みのカラム位置の出力幅を指定します。デフォルトで、 ps は、自動的に端末の幅を判断しようとします。

関連ファイル

/boot/kernel/kernel
デフォルトのシステム名前リスト

使用例

すべてのシステムのプロセスについての情報を表示します:

$ ps -auxw

規格

歴史的な理由で、 FreeBSD に基づく ps ユーティリティは、 IEEE Std 1003.2 (“POSIX.2”) によって記述されるものと、非 BSD オペレーティングシステムでサポートされる異なるオプション形式の組をサポートしています。

歴史

ps コマンドは、 Version 4 AT&T UNIX で登場しました。

バグ

ps は、システムより速く実行することができず、あらゆる他のスケジュールされたプロセスと同様に実行されるので、それが表示する情報は、決して正確になりません。

ps ユーティリティは、マルチバイト文字を含んでいる引数リストを正確に表示しません。

March 15, 2013 FreeBSD