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, time と command。
- -L
- -O と -o オプションに対して利用可能な一連のキーワードをリストします。
- -l
- 次のキーワードに関連する情報を表示します: uid, pid, ppid, cpu, pri, nice, vsz, rss, mwchan, state, tt, time と command。
- -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, time と command。 -u オプションは、 -r オプションの意味を含みます。
- -v
- 次のキーワードに関連する情報を表示します: pid, state, time, sl, re, pagein, vsz, rss, lim, tsiz, %cpu, %mem と command。 -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
関連項目
kill(1), pgrep(1), pkill(1), procstat(1), w(1), kvm(3), strftime(3), mac(4), procfs(5), pstat(8), sysctl(8), mutex(9)規格
歴史的な理由で、 FreeBSD に基づく ps ユーティリティは、 IEEE Std 1003.2 (“POSIX.2”) によって記述されるものと、非 BSD オペレーティングシステムでサポートされる異なるオプション形式の組をサポートしています。歴史
ps コマンドは、 Version 4 AT&T UNIX で登場しました。バグ
ps は、システムより速く実行することができず、あらゆる他のスケジュールされたプロセスと同様に実行されるので、それが表示する情報は、決して正確になりません。ps ユーティリティは、マルチバイト文字を含んでいる引数リストを正確に表示しません。
March 15, 2013 | FreeBSD |