PS
Section: User Commands (1)
Index
Return to Main Contents
BSD mandoc
名称
ps
- プロセスの状態の表示
書式
[-
aCcefHhjlmrSTuvwxZ
]
[-
M core
]
[-
N system
]
[-
O fmt
]
[-
o fmt
]
[-
p pid
]
[-
t tty
]
[-
U username
[,
username ...
]
]
[-
L
]
解説
ユーティリティは、制御端末を持つ自分 (あなた) のプロセスの情報を、
ヘッダ行に続いて表示します。
この情報は、制御端末順に整列され、その中ではプロセス
ID
順に整列されます。
表示される情報は、一連のキーワードによって選ばれます
( -L
-O
-o
オプションを参照)。
デフォルトの出力フォーマットは、各プロセス毎に、
プロセス
ID
制御端末・cpu 時間 (ユーザ時間とシステム時間の両方)・
プロセス状態・プロセスに関連するコマンドから成ります。
プロセスファイルシステム (
procfs(5)
参照) は、
が実行されている時にマウントされているべきです。そうでない場合、
すべての情報が利用可能になるわけではありません。
オプションを以下に示します。
- -a
-
自分のプロセスに加え自分以外のプロセスの情報も同様に表示します。
この機能は、
security.bsd.see_other_uids
sysctl を 0 に設定することで無効化できます。
- -c
-
``コマンド'' 桁の出力を、すべてのコマンドラインを表示するのではなく、
実行形式名だけを表示するように変更します。
- -C
-
cpu パーセンテージの計算を、``常駐'' 時間を無視する ``生''
cpu 時間を使う方法に変更します (通常これは影響ありません)。
- -e
-
環境 (変数) も同時に表示します。
- -f
-
スワップアウトされたプロセスに関して、
コマンドラインと環境の情報を表示します。
ユーザの uid が 0 である場合のみ、このオプションが有効になります。
- -H
-
各プロセスに関連する、すべての
カーネルから見える
スレッドを表示します。
使用中のスレッドパッケージに依存し、プロセスのみの表示か、
カーネルスケジュールエンティティのみの表示か、
全プロセススレッドの表示のいずれかになります。
- -h
-
ページ毎に 1 つヘッダが入るようにします。
- -j
-
次のキーワードに関する情報を表示します:
user, pid, ppid, pgid, jobc, state, tt, time, command。
- -L
-
有効なキーワードの一覧を表示します。
- -l
-
次のキーワードに関する情報を表示します:
uid, pid, ppid, cpu, pri, nice, vsz, rss, mwchan, state, tt, time。
- -M
-
名前リストの値を取り出すとき、
デフォルトの
/dev/kmem
の代わりに、指定した
core
から取り出します。
- -m
-
プロセス
ID
順ではなく、メモリ使用量順に整列します。
- -N
-
デフォルトの
/boot/kernel/kernel
の代わりに、指定された
system
から名前リストを取り出します。
- -O
-
デフォルトで表示される情報に加え、
指定されたキーワードに関する情報を、
プロセス
ID
の後に挿入する形式で表示します。
各キーワードの後ろには、等号 (``='') と文字列を追加しても構いません。
この場合、標準のヘッダの代わりに指定された文字列が表示されます。
- -o
-
指定されたキーワードに関する情報を、表示します。
キーワードは、空白またはコンマで区切って指定可能です。
また、複数の
-o
オプションを使用することでも、複数のキーワードを指定可能です。
各キーワードの後ろには、等号(``='')と文字列を追加しても構いません。
この場合、標準のヘッダの代わりに指定された文字列が表示されます。
- -p
-
指定したプロセス
ID
に関する情報を表示します。
- -r
-
プロセス
ID
順ではなく、現在の cpu 利用率順に整列します。
- -S
-
プロセス時間を計算するのに、
終了した子プロセスの時間を親プロセスに合計するように変更します。
- -T
-
標準入力のデバイスに取り付けられたプロセスの情報を表示します。
- -t
-
指定された端末デバイスに取り付けられたプロセスの情報を表示します。
- -U
-
指定された
username
(複数指定可) に属するプロセスを表示します。
- -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
オプションを指定すると、
はウィンドウ幅にかかわらず、必要なだけの幅を使用します。
- -x
-
制御端末のないプロセスの情報も表示します。
- -Z
-
が情報を表示するキーワードリストに、ラベルを追加します。
有効なキーワードの全リストを以下に示します。
いくつかのキーワードに関してはさらに詳しく述べます。
- %cpu
-
プロセスの cpu 利用率です。実時間で最近 1 分間の減衰平均です。
計算の基点となる時間は変化するので
(プロセスはまだ生れたばかりかもしれないので)、
%CPU
フィールド全部の合計は 100% を越える可能性もあります。
- %mem
-
プロセスで使われている実メモリのパーセンテージです。
- flags
-
インクルードファイル
In sys/proc.h
でプロセスに定義されたフラグです。
- P_ADVLOCK Ta 0x00001 プロセスは POSIX 提案ロックを保持している
-
- P_CONTROLT Ta 0x00002 制御端末を持っている
-
- P_INMEM Ta 0x00004メモリに読み込まれている
-
- P_NOCLDSTOP Ta 0x00008子プロセスが停止しても SIGCHLD を送らない
-
- P_PPWAIT Ta 0x00010親プロセスが、子プロセスが exec/exit するのを待っている
-
- P_PROFIL Ta 0x00020プロファイル付きで実行された
-
- P_SELECT Ta 0x00040select 中; wakeup/waiting は危険である
-
- P_SINTR Ta 0x00080sleep は割り込み可能
-
- P_SUGID Ta 0x00100最後の実行以来、id 特権が設定されている
-
- P_SYSTEM Ta 0x00200システムプロセス: シグナルや stat やスワップが無い
-
- P_TIMEOUT Ta 0x00400sleep 中にタイムアウトした
-
- P_TRACED Ta 0x00800デバッグプロセスはトレースされている
-
- P_WAITED Ta 0x01000デバッグプロセスは子プロセスを待っている
-
- P_WEXIT Ta 0x02000終了動作中
-
- P_EXEC Ta 0x04000プロセスは exec で呼ばれた
-
- P_OWEUPC Ta 0x20000次の ast プロセスが addupc() 呼び出しの借り
-
- P_SWAPPING Ta 0x40000プロセスはスワップされている
-
- label
-
プロセスの MAC ラベルです。
- lim
-
setrlimit(2)
の呼び出しで指定される、メモリ使用量のソフトリミットです。
- lstart
-
コマンドの実行が始まった正確な時刻を、
strftime(3)
に記述された ``%c'' フォーマットで表示します。
- lockname
-
プロセスが現在ブロックされているロックの名前です。
名前が不正または未知の場合、
``???''
が表示されます。
- mwchan
-
プロセスが通常のブロック状態ではイベント名であり、
プロセスがロックでブロックされている場合にはロックの名前です。
詳細は、キーワード wchan と lockname を参照してください。
- nice
-
プロセススケジューリングにおける増加値です
( setpriority(2)
参照)。
- rss
-
プロセスの実メモリ(常駐分)の大きさ(1024バイト単位)です。
- start
-
コマンドが開始された時間です。
コマンドが開始されたのが 24 時間以内なら、
開始時刻は
strftime(3)
で記述された ``%l:ps.1p'' フォーマットで表示されます。
コマンドが開始されたのが 7 日以内なら、
開始時刻は ``%a6.15p'' フォーマットで表示されます。
さもなくば、開始時刻は ``%e%b%y'' フォーマットで表示されます。
- state
-
プロセスの状態を文字の列で表示します。例えば、
``RWNA
''
の最初の文字は、プロセスが runnable 状態であることを示しています。
- D
-
プロセスはディスク (あるいは他の割り込み不可能な短期間の) 待ち状態です。
- I
-
プロセスは idle 状態 (20 秒以上 sleep している) です。
- J
-
プロセスは
jail(2)
中のものです。
牢屋のホスト名は
`/proc/<pid>/status'
に記述されています。
- R
-
プロセスは runnable 状態です。
- S
-
プロセスは 20 秒未満の sleep 状態です。
- T
-
プロセスは stop している状態です。
- Z
-
プロセスは死んでいる状態 (``ゾンビ'') です。
さらにこの後に文字があれば、さらなる状態情報を示します。
- +
-
プロセスはその制御端末のフォアグラウンドプロセスグループに属しています。
- <
-
プロセスは
CPU
のスケジュール優先度が上げられています。
- >
-
プロセスはメモリ要求に対するソフトリミットが指定されており、
現在そのリミットを越えています。
このようなプロセスは (必然的に) スワップされていません。
- A
-
プロセスはランダムなページ置換 (
madvise(2)
における
MADV_RANDOM
のことで、例えば、
lisp
でのガーベージコレクション) を要求しました。
- E
-
プロセスは終了しようとしています。
- L
-
プロセスは実メモリ中にロックされたページ
(例えば、raw
I/O
用) を持っています。
- N
-
プロセスは
CPU
スケジューリング優先度 (
setpriority(2)
参照) が下げられています。
- S
-
プロセスは
FIFO
ページ置換 (
madvise(2)
における
MADV_SEQUENTIAL
のことで、
例えば、仮想記憶の多量のデータを順次アクセスする
大規模画像処理プログラム) を要求しました。
- s
-
プロセスはセッションリーダです。
- V
-
プロセスは
vfork(2)
の間、一時中断されています。
- W
-
プロセスはスワップアウトされています。
- X
-
プロセスはトレースされているか、デバッグされています。
- tt
-
もしあれば、制御端末のパス名の省略形です。
省略形は
/dev/tty
に続く 3 文字か、コンソール場合の ``con'' です。
もはやプロセスがその制御端末に到達できない (即ち、revoke された) 場合、
後に ``-'' が付きます。
- wchan
-
プロセスが待っているイベント (システム内のアドレス)。
数字で表示される時には、アドレスの最初の部分は削られて
その結果が 16 進で表示されます。例えば 0x80324000 では 324000 と表示されます。
キーワード command には、
すでに終了しているのに親がまだ wait してくれていない
プロセス(即ちゾンビ)は ``<defunct>'' と表示されます。
終了しようとしてブロックされているプロセスは ``<exiting>'' と表示されます。
ユーティリティは、メモリやスワップ領域を検査して、
プロセスが生成されたときのファイル名や引数を推測します。
この方法は、本質的に少々信頼できるものではなく、
プロセスはとにかくこの情報を破壊することができます。
だから、表示されるコマンド名や引数をあまり信用しすぎてはなりません。
一方、キーワード ucomm (アカウンティング名) は信用できます。
キーワード
以下は有効なキーワードとその意味の全リストです。
そのうちいくつかは別名があります。
- %cpu
-
cpu 使用率 (別名 pcpu)
- %mem
-
メモリ使用率 (別名 pmem)
- acflag
-
アカウンティングフラグ (別名 acflg)
- command
-
コマンド名と引数
- cpu
-
短期間 cpu 使用係数 (スケジューリング用)
- flags
-
16 進数のプロセスフラグ (別名 f)
- inblk
-
総ブロック読み出し数 (別名 inblock)
- jobc
-
ジョブコントロール数
- ktrace
-
トレース中フラグ
- label
-
MAC ラベル
- lim
-
メモリ利用のリミット
- logname
-
プロセスを開始したユーザのログイン名
- lstart
-
開始時刻
- majflt
-
総ページフォールト数
- minflt
-
総ページ再生数
- msgrcv
-
総メッセージ受信数 (パイプ/ソケットからの読み込み)
- msgsnd
-
総メッセージ送信数 (パイプ/ソケットへの書き込み)
- lockname
-
現在ブロックされているロック (シンボル名)
- mwchan
-
現在ブロックされているチャネルまたはロック
- nice
-
nice 値 (別名 ni)
- nivcsw
-
総強制的コンテキストスイッチ数
- nsigs
-
総シグナル受け入れ数 (別名 nsignals)
- nswap
-
総スワップイン/スワップアウト数
- nvcsw
-
総自発的コンテキストスイッチ数
- nwchan
-
wait チャネル (アドレスで表示)
- oublk
-
総ブロック書き込み数 (別名 oublock)
- paddr
-
スワップアドレス
- pagein
-
ページイン数 (majflt と同じ)
- pgid
-
プロセスグループ番号
- pid
-
プロセス
ID
- poip
-
進行中のページアウト数
- ppid
-
親プロセス
ID
- pri
-
スケジューリング優先度
- re
-
実メモリ常駐時間 (秒単位; 127 = 無限)
- rgid
-
実グループ
ID
- rgroup
-
グループ名 (rgid に基きます)
- rlink
-
run 行列における逆リンク (あるいは 0)
- rss
-
常駐セットサイズ
- rtprio
-
実時間優先度 (101 = 実時間プロセスではない)
- ruid
-
実ユーザ
ID
- ruser
-
ユーザ名 (ruid から得られたもの)
- sess
-
セッションポインタ
- sig
-
遅延されたシグナル (別名 pending)
- sigcatch
-
捕獲されたシグナル (別名 caught)
- sigignore
-
無視されたシグナル (別名 ignored)
- sigmask
-
ブロックされたシグナル (別名 blocked)
- sl
-
sleep 時間 (秒単位; 127 = 無限)
- start
-
開始時刻
- state
-
記号でのプロセス状態 (別名 stat)
- svgid
-
setgid プログラムでの saved gid
- svuid
-
setuid プログラムでの saved uid
- tdev
-
制御端末のデバイス番号
- time
-
ユーザ + システムの合計 cpu 時間 (別名 cputime)
- tpgid
-
制御端末プロセスグループ
ID
- tsid
-
制御端末のセッション
ID
- tsiz
-
テキストサイズ (K バイト単位)
- tt
-
制御端末名 (2 文字の省略形)
- tty
-
制御端末の完全な名前
- uprocp
-
プロセスポインタ
- ucomm
-
アカウンティングで使われるコマンド名
- uid
-
実効ユーザ
ID
- upr
-
システムコールから帰る時のスケジューリング優先度 (別名 usrpri)
- user
-
ユーザ名 (uid から得たもの)
- vsz
-
k バイト単位の仮想記憶サイズ (別名 vsize)
- wchan
-
wait チャネル (シンボル名で表示)
- xstat
-
終了ステータスまたは stop ステータス
(stop プロセスかゾンビプロセスの時のみに有効)
環境変数
次の環境変数が
の実行に影響します:
- COLUMNS
-
設定されている場合、ユーザの好む出力幅をコラム数で指定します。
デフォルトでは、
は自動的に端末幅を取得しようとします。
関連ファイル
- /dev/kmem
-
デフォルトのカーネルメモリデバイス
- /dev/lomac
-
lomac(4)
KLD への問い合わせに使用するインタフェース
- /var/run/dev.db
-
/dev
名前データベース
- /var/run/kvm_kernel.db
-
システム (カーネル) の名前リストデータベース
- /boot/kernel/kernel
-
デフォルトのシステムの名前リスト
- /proc
-
procfs(5)
のマウントポイント
関連項目
kill(1),
w(1),
kvm(3),
strftime(3),
lomac(4),
procfs(5),
pstat(8),
sysctl(8),
mutex(9)
歴史
コマンドは
AT&T System
v4
に登場しました。
バグ
はシステムより速く実行できず、
他のプロセスと同様にスケジュールされて実行されるので、
表示される情報は正確ではあり得ません。
Index
- 名称
-
- 書式
-
- 解説
-
- キーワード
-
- 環境変数
-
- 関連ファイル
-
- 関連項目
-
- 歴史
-
- バグ
-