ps コマンド
目的
プロセスの状況を表示します。 本書では、標準の AIX® ps コマンドおよび System V バージョンの ps コマンドについて説明します。
構文
- X/Open 標準
- バークレー標準
説明
ps コマンドは、アクティブ・プロセスの状況、
および -m フラグが指定されていれば、それに関連するカーネル・スレッドを、
標準出力に書き出します。 -m フラグは、追加の行を使用してプロセスに関連付けられたスレッドを表示しますが、追加のスレッド関連の列を表示するには、 THREAD
フィールド指定子を指定した -o フラグを使用する必要があります。
フラグが指定されていなければ、ps コマンドは現行端末に関する情報を表示します。 フラグ -f、 -o、l、-l、s、u、および v は、 プロセスに関して表示する情報量のみを決定し、どのプロセスをリストするかを決定するわけではありません。 フラグ l、s、u、および v は相互に排他的です。
-o フラグでは、 ps コマンドはメモリーまたはページング域を調べて、 プロセスが作成されたときのコマンド名およびパラメーターを判別します。 ps コマンドがこの情報を検出できない場合は、カーネルに保管されているコマンド名が大括弧で囲まれて表示されます。
COLUMNS
環境変数は、システムで選択された横方向の画面サイズをオーバーライドします。
パラメーター・リストを受け入れるコマンド・ライン・フラグ (-o、-G、-g、-p、-t、-U、および -u フラグ) は、128 エントリーまでに制限されています。 例えば、-u Ulist フラグに指定できるユーザー数は 128 以内です。
ps コマンドの出力に ワークロード・パーティション (WPAR) 名は含まれていないが、現行稼働環境でワークロード・パーティション内で実行されているプロセスに関連付けられたプロジェクト ID (PROJECT
)、ユーザー ID (UID
または USER
)、またはグループ ID (GID
) が含まれている場合、それらの ID の前に正符号 (+) が付けられ、 ワークロード・パーティションとの関連付けが示されます。 各 ワークロード区画 には、グローバル環境用に定義された ID とは異なるユーザー、グループ、およびプロジェクト ID の独自の定義が含まれています。 -@ オプションを指定して、 ワークロード区画 名を出力に含めることができます。
ps コマンドで使用されるフラグに応じて、標準出力に表示される情報の上に列見出しが表示されます。 見出しは以下のリストに定義されており、これらの見出しが表示される原因となるフラグが括弧内に示されています。
- ADDR
- (-l および l フラグ) 通常の場合は、プロセス・スタックのセグメント番号が入っています。カーネル・プロセスの場合は、プリプロセス・データ領域のアドレスです。
- BND
- (-o THREAD フラグ) カーネル・スレッドがバインドされる論理プロセッサー番号 (バインドされる場合)。 プロセスの場合は、そのすべてのスレッドが同じプロセッサーにバインドされたときに、 このフィールドが表示されます。
- C
- (-f、 l、および -l フラグ) プロセスまたはスレッドの CPU 使用率。これは、システム・クロック・ティックおよびプロセスまたはスレッドが実行中であることが検出されるたびに増加します。 スケジューラーは、毎秒一度ずつ 2 で除算してこの値を減分させます。
sched_other
ポリシーでは、CPU 使用率はプロセスのスケジューリング優先順位を決定する際に使用されます。 値が大きい場合は、CPU 負荷の高いプロセスを示し、プロセスの優先順位が低くなります。値が小さい場合は、入出力負荷の高いプロセスを示し、優先順位が高くなります。 - CMD
- (-f、-l、および l フラグ) コマンド名が入っています。 -f フラグを指定すると、 ps コマンドは、現在のコマンド名と引数を判別しようとします。どちらも、プロセスによって非同期に変更される可能性があります。 この後そのコマンド名と引数が表示されます。 この表示に失敗すると、-f オプションなしにコマンド名が表示されるように、大括弧の中にそのコマンド名が書き込まれます。
- コマンド
- (s、u、および v) コマンド名が入っています。 完全なコマンド名およびそのパラメーターは、-f フラグで表示されます。F フィールドの表
フラグ 16 進数 定義 SLOAD
0x00000001 プロセスがコア・メモリーで動作中であることを示す。 SNOSWAP
0x00000002 プロセスをスワップアウトできないことを示す。 STRC
0x00000008 プロセスがトレースされていることを示す。 SWTED
0x00000010 トレース中に、プロセスが停止したことを示す。 SFWTED
0x00000020 トレース中に、 fork
サブルーチンのコール後でプロセスが停止したことを示す。SEWTED
0x00000040 トレース中に、 exec
サブルーチンのコール後でプロセスが停止したことを示す。SLWTED
0x00000080 トレース中に、 load
またはunload
サブルーチンのコール後でプロセスが停止したことを示す。SFIXPRI
0x00000100 pcpu
フィールド・ディスクリプターを無視し、プロセスが固定優先順位を持つことを示す。SKPROC
0x00000200 カーネル・プロセスを示す。 SOMASK
0x00000400 シグナルを受信した後で、古いマスクの復元を示す。 SWAKEONSIG
0x00000800 シグナルが sleep
サブルーチンを打ち切ることを示します。 内容は、PCATCH
フラグの内容と同じであっては なりません 。PCATCH
およびSWAKEONSIG
の両方の内容が、PMASK
の内容よりも大きくなければならない。SUSER
0x00001000 プロセスがユーザー・モードにあることを示す。 SLKDONE
0x00002000 プロセスがロックされていることを示します。 STRACING
0x00004000 プロセスがデバッグ・プロセスであることを示す。 SMPTRACE
0x00008000 マルチプロセス・デバッグを示す。 SEXIT
0x00010000 プロセスが終了していることを示す。 SSEL
0x00020000 プロセッサーが「makeup」または「waiting danger」を選択していることを示します。 SORPHANPGRP
0x00040000 孤立プロセス・グループを示す。 SNOCNTLPROC
0x00080000 セッション・リーダーを制御端末から解放したことを示す。 SPPNOCLDSTOP
0x00100000 子プロセスが停止するときに親プロセスへ SIGHLD
シグナルが送信されない ことを示す。SEXECED
0x00200000 プロセスにあることを示します。 SJOBSESS
0x00400000 現行セッションでジョブ制御が使われたことを示す。 SJOBOFF
0x00800000 プロセスがジョブ制御を受けていないことを示す。 PSIGDELIVERY
0x01000000 プロセスがプログラム・チェック・ハンドラーによって使用されることを示す。 SRMSHM
0x02000000 exit
サブルーチンのコール中、プロセスが共有メモリーを除去したことを示す。SSLOTFREE
0x04000000 プロセスのスロットが空いていることを示す。 SNOMSG
0x08000000 これ以上 uprintf
サブルーチン・メッセージがないことを示す。 - WPAR
- (-@ フラグ) ワークロード区画名が入っています。 -@ フラグのを指定すると、ps コマンドは、プロセスが実行されているワークロード区画の名前を表示します。 プロセス情報を表示するには、-@ フラグに wparname パラメーターを指定します。
- DPGSZ
- (Z フラグ) プロセスのデータ・ページ・サイズ。
F
- (-l および l フラグ) プロセスおよびスレッドに関連付けられた、より重要な
F
フィールド・フラグ (16 進数および加算) の一部を、以下の表にリストします。F フィールドの表フラグ 16 進数 定義 SLOAD
0x00000001 プロセスがコア・メモリーで動作中であることを示す。 SNOSWAP
0x00000002 プロセスをスワップアウトできないことを示す。 STRC
0x00000008 プロセスがトレースされていることを示す。 SKPROC
0x00000200 カーネル・プロセスを示す。 SEXIT
0x00010000 プロセスが終了していることを示す。 SLPDATA
0x00020000 プロセスで大きなページが使用されることを示す。 SEXECED
0x00200000 プロセスにあることを示します。 SEXECING
0x01000000 プロセスが実行中 (exec を実行中) であることを示す。 SPSEARLYALLOC
0x04000000 このプロセスのページング・スペースが初期に割り当てられることを示す。 TKTHREAD
0x00001000 スレッドがカーネル専用スレッドであることを示す。 注: /usr/include/sys/proc.h ファイルと /usr/include/sys/thread.h ファイルのp_flags
フィールドとt_flags
フィールドをそれぞれ参照することで、すべてのプロセス・フラグとスレッド・フラグの定義を確認できます。
- LIM
- (v フラグ)
setrlimit
サブルーチンのコールを介して指定され、使用されるメモリーのソフト制限。 この制限を指定しなかった場合、xx
が表示されます。 この制限をシステム制限 (すなわち、制限なし) に設定した場合には、値UNLIM
が表示されます。 - NI
- (-l および l フラグ) nice の値。
sched other
ポリシーの優先順位の計算に使用されます。 - PID
- (すべてのフラグ) プロセスのプロセス ID。
- PGIN
- (v フラグ) コアにロードされていないページへのプロセスによる参照から生じたディスク入出力回数。
- PPID
- (-f、l、および -l フラグ) 親プロセスのプロセス ID。
- PRI
- (-l および l フラグ) プロセスまたはカーネル・スレッドの優先順位。数値が大きいほど優先順位が低くなります。
- PROJECT
- (-P フラグ) プロセスに割り当てられているプロジェクト名。 現在の稼働環境では、
PROJECT
フィールドおよびUSER
フィールドは、 ワークロード・パーティション内で実行されているプロセスの名前に変換されません。 -U と -u フラグだけは、現行稼働環境に適用されます。ただし、-@ フラグが特定のワークロード区画名を指定して組み込まれている場合はその限りではありません。 -@ フラグを使用して現行稼働環境以外のワークロード区画を指定し、かつ、-U と -u フラグが指定されている場合、ユーザー ID のリストは数値でなければなりません。 - RSS
- (v フラグ) プロセスの実メモリー (常駐セット) のサイズ (1 キロバイト単位)。
- S
- (-l および l フラグ) プロセスまたはカーネル・スレッドの状態。
プロセスの場合:
O
- 存在しない
A
- アクティブ
W
- スワップ済み
I
- アイドル (始動待ちの) 状態
Z
- 取り消し
T
- 停止
カーネル・スレッドの場合:
O
- 存在しない
R
- 実行中
S
- スリープ中
W
- スワップ済み
Z
- 取り消し
T
- 停止
SC
- (-o THREAD フラグ) プロセスまたはカーネル・スレッドの中断カウント。 プロセスの場合、中断カウントはカーネル・スレッドの中断カウントの合計として定義されます。
SCH
- (-o THREAD, sched フラグ) カーネル・スレッドのスケジューリング・ポリシー。 ポリシー
sched_other
、sched_fifo
、およびsched_rr
は、それぞれ0
、1
、2
を使用して表示されます。 スケジューリング・ポリシーは、sched
フラグが指定されている場合にのみ表示されます。 SIZE
- (v フラグ) プロセスのデータ・セクションの仮想サイズ (1 キロバイト単位)。
SHMPGSZ
- (Z フラグ) プロセスの共有メモリー・ページ・サイズ。
SPGSZ
- (Z フラグ) プロセスのスタック・ページ・サイズ。
SSIZ
- (s フラグ) カーネル・スタックのサイズ。 マルチスレッド・プロセスの場合、この値は常に 0 (ゼロ) です。
STAT
- (s、u、および v フラグ) プロセスの状態が入っています。
0
- 存在しない
A
- アクティブ
I
- 中間
Z
- 取り消し
T
- 停止
K
- 使用可能なカーネル・プロセス
- STIME
- (-f および u フラグ) プロセスの始動時刻。
LANG
環境変数がこのフィールドの表示を制御します。 - SUBPROJ
- (-P フラグ) プロセスに割り当てられているサブプロジェクトの ID。
- SZ
- (-l および l フラグ) プロセスのコア・イメージの 1 キロバイト単位のサイズ。
- THCNT
- (-o thcount フラグ) プロセスが所有するカーネル・スレッド数。
- TID
- (-o THREAD フラグ) カーネル・スレッドのスレッド ID。
- 時刻
- (すべてのフラグ) プロセスの合計実行時間。 時間の表示フォーマットは mm:ss または mmmm:ss (実行時間が 100 分に達した場合) です。これは -o time フラグを指定した場合の表示フォーマットとは異なります。
- TPGSZ
- (Z フラグ) プロセスのテキスト・ページ・サイズ。
- TRS
- (v フラグ) テキストの常駐セット (実メモリー) のサイズ。
- TSIZ
- (v フラグ) テキスト (共有プログラム) イメージのサイズ。
TTY
- (すべてのフラグ) プロセスのための制御端末で、以下のとおりです。
-
- プロセスが端末と関連付けられていない。
?
- 不明。
- Number
TTY
番号。 例えば、項目2
はTTY2
を示します。
- UID
- (-f、-l、および l フラグ) プロセス・オーナーのユーザー ID。 -f フラグを指定すると、ログイン名が表示されます。
- ユーザー
- (u フラグ) プロセス・オーナーのログイン名。 現在の稼働環境では、
PROJECT
フィールドおよびUSER
フィールドは、 ワークロード・パーティション内で実行されているプロセスの名前に変換されません。 - WCHAN
- (-l フラグ) プロセスまたはカーネル・スレッドが待機中またはスリープ中であるイベント。 カーネル・スレッドの場合、カーネル・スレッドが実行中であれば、このフィールドはブランクになります。 プロセスの場合、カーネル・スレッドが 1 つだけスリープしていると、待機チャネルはスリープ中のカーネル・スレッドの待機チャネルとして定義されます。それ以外の場合は、アスタリスクが表示されます。
- WCHAN
- (l フラグ) プロセスが待機中のイベント (システム内のアドレス)。 数値出力が要求されない限り、アドレスをソートする記号が選ばれます。
- CPU (%CPU)
- (u および v フラグ) プロセス始動以降、プロセスが CPU を使用した時間のパーセンテージ。 この値は、プロセスが CPU を使用した時間をプロセスの経過時間で除算することによって計算されます。 マルチプロセッサー環境では、同じプロセスにある複数のスレッドは異なる CPU 上で同時に稼働できるため、この値をさらに使用可能な CPU の数で割ります。 (このデータが計算される時間基準は異なるため、すべての
%CPU
フィールドの合計が 100% を超える可能性があります。) - %MEM
- (u および v フラグ) このプロセスで使用されている実メモリーの割合。
%MEM
値は、プログラム・テキストを他のプロセスと共有しているプロセスのコストを誇張する傾向があります。 1 つのプログラムの複数のコピーが実行されていて、プログラム・テキストのコピーがすべてのインスタンスによって共有されている場合、共有による重複は考慮されていません。 そのプログラムのインスタンスごとに、テキスト・セクションのサイズが考慮されます。 これは、1 つのプログラムの複数のコピーが実行される場合、すべてのプロセスの%MEM
値の合計が 100% を超える可能性があることを意味します。
<defunct>
と記されます。 終了しようとしてブロックされているプロセスには、 <exiting>
のマークが付けられます。 ps コマンドは、プロセスがメモリーまたはスワップ領域によって作成されたときに指定されたファイル名と引数を判別しようとします。- ps コマンドの実行中に、プロセスが変更することがあります。 機能不良プロセスについて表示されるデータの中には、無関係なものがあります。
- ps プログラムは、メモリーを調べて、プロセスの作成時に使用されたファイル名と引数を取得します。 ただし、プロセスが情報を破壊する可能性があるので、 このファイル名と引数の検索方法は信頼性を欠きます。
- ps プログラムは、ローカル・リソースでユーザーおよびグループ情報を検索します。
フラグ
以下のフラグの前には、-
(マイナス符号) が付きます。
項目 | 説明 |
---|---|
-A | すべてのプロセスに関する情報を標準出力に書き出します。 |
-a | セッション・リーダー、および端末に関連しないプロセスを除くすべてのプロセスに関する情報を標準出力に書き出します。 |
-c リスト | Clist 変数にリストされているワークロード管理クラスに割り当てられているプロセスに関する情報のみを表示します。 Clist 変数は、コンマで区切られたクラス名のリスト、または二重引用符 ("") で囲まれたクラス名のリストです。これは、コンマまたは 1 つ以上のスペース、あるいはその両方で区切られます。 |
-d | セッション・リーダーを除くすべてのプロセスに関する情報を標準出力に書き出します。 |
-e | カーネル・プロセス以外のすべてのプロセスに関する情報を標準出力に書き出します。 |
-F Format | -o Format と同じ。 |
-f | 完全なリストを生成します。 |
-G Glist | Glist 変数にリストされている有効グループ内のプロセスに関する情報のみを標準出力に書き込みます。 Glist 変数は、有効なグループ ID のコンマ区切りリスト、または二重引用符で囲まれ、 (" ") コンマまたは 1 つ以上のスペースで区切られた有効なグループ ID のリストのいずれかです。 |
-g Glist | Glist 変数にリストされているプロセス・グループ内のプロセスに関する情報のみを標準出力に書き込みます。 Glist 変数は、コンマで区切られたプロセス・グループ ID のリスト、または二重引用符で囲まれ、 (" ") コンマまたは 1 つ以上のスペースで区切られたプロセス・グループ ID のリストのいずれかです。 |
-k | カーネル・プロセスをリストします。 |
-l | 詳細なリストを作成します。 l フラグも参照してください。 |
-L ピッド・リスト | pidlist 変数に入れて渡されたすべての pid の子孫のリストを生成します。 pidlist 変数は、コンマで区切られたプロセス ID の リストです。 指定されたすべての PID からの子孫のリストが、 プロセス・テーブルに現れた順に印刷されます。 |
-M | すべての 64 ビット・プロセスをリストします。 |
-m | カーネル・スレッドおよびプロセスをリストします。 プロセスの出力行の後には、カーネル・スレッドごとに追加の出力行が続きます。 このフラグは、適切な -o Format フラグが指定されていない限り、スレッド固有のフィールド (bnd 、 scount 、 sched 、 thcount 、および tid ) を表示しません。 |
-N | スレッド統計情報の収集は行いません。 このフラグを指定すると、ps は、 プロセスのスレッド・チェーンをスキャンしなくても入手できる統計情報だけをレポートします。 |
-n NameList | デフォルトの代わりに代替システム名リスト・ファイルを指定します。 オペレーティング・システムでは、情報は直接カーネルに提供されるため、 -n フラグは使用されません。 |
-o Format | Format 変数で指定された形式で情報を表示します。 Format 変数には、複数のフィールド指定子を指定できます。 Format 変数は、フィールド指定子のコンマ区切りリスト、または "" のセットで囲まれたフィールド指定子のリストのいずれかです。 (二重引用符) で区切られ、コンマまたは 1 つ以上のスペース、あるいはその両方で区切られます。 それぞれのフィールド指定子にはデフォルトのヘッダーがあります。 デフォルトのヘッダーをオーバーライドするには、 システムが認識するフィールド指定子を以下に示します。
|
-o (続き) |
|
-o (続き) |
上記以外の場合には、フィールド・ディスクリプターも含め、複数フィールドを Format 変数による指定フォーマットで表示できます。 フォーマット 変数でフィールド記述子を使用する場合は、二重引用符 ("") で囲む必要があります。 以下の表は、フィールド記述子がフィールド指定子にどのように対応するかを示しています。 |
それぞれのフィールド指定子にはデフォルトのヘッダーがあります。 デフォルトのヘッダーをオーバーライドするには、 等号 (=) の後にヘッダーのユーザー定義テキストを指定します。 フィールドは、コマンド行で指定された順序で列形式で書き込まれます。 フィールド幅は、少なくともデフォルト幅かユーザー定義ヘッダー・テキストの幅になるように、
システムによって指定されます。 ヘッダー・テキストが NULL の場合 (例えば、 |
|
以下は、デフォルト・ヘッダーとさまざまなフィールド指定子の間のマッピングです。 「Default Header」列の各エントリーは、
「Field specifier」の対応するエントリーに等号 (=) を追加し、その後にヘッダーのユーザー定義テキストを指定することによってオーバーライドすることができます。
|
|
-p Plist | Plist 変数に指定されたプロセス番号を持つプロセスに関する情報のみを表示します。 Plist 変数は、プロセス ID 番号のコンマ区切りリスト、または二重引用符 ("") で囲まれたプロセス ID 番号のリストのいずれかです。 そして、コンマまたは 1 つ以上のスペース、あるいはその両方で互いに区切ります。 |
-P | プロジェクトのプロジェクト名、プロジェクト・オリジン (Project origin)、およびサブプロジェクト ID を表示します。 スティッキー・ビットがプロセスに設定されている場合、プロジェクト名の前にアスタリスク (*) 文字が
付きます。 Project origin フィールドは、現在ロードされているプロジェクト・リポジトリー (LOCAL または LDAP) を示します。 |
-t 一覧 | Tlist 変数にリストされている制御 ttys に関連付けられているプロセスに関する情報のみを表示します。 Tlist 変数は、tty ID のコンマ区切りリスト、または二重引用符 ("") で囲まれた tty ID のリストのいずれかです。 そして、コンマまたは 1 つ以上のスペース、あるいはその両方で互いに区切ります。 |
-T PID | ASCII アートを使用して、指定された PID をルートとするプロセス階層をツリー形式で表示します。 このフラグは、 -f、 -F、 -o、および -l フラグと一緒に使用できます。 |
-u Ulist | このフラグは、 -U Ulist フラグと同等です。 -u フラグは、 -@ フラグも指定されていない限り、現在の稼働環境にのみ適用されます。 -@ フラグを使用して現在の操作環境以外のワークロード区画を指定し、 -u フラグを指定する場合、ユーザー ID のリストは数値でなければなりません。 |
-U Ulist | Ulist 変数に指定されたユーザー ID 番号またはログイン名を持つプロセスに関する情報のみを表示します。 Ulist 変数は、コンマで区切ったユーザー ID のリストか、または二重引用符 (" ") で囲み、コンマか 1 つ以上のスペースで区切ったユーザー ID のリストです。 -U フラグだけは、 現行稼働環境に適用されます。ただし、-@ フラグも指定されている場合はその限りではありません。 -@ フラグを使用して現行稼働環境以外のワークロード区画を指定し、かつ、-U フラグが指定されている場合、ユーザー ID のリストは数値でなければなりません。 リストでは、 ps コマンドは、 -f フラグが使用されていない限り、数値のユーザー ID を表示します。そうすると、ログイン名が表示されます。 このフラグは、 -u Ulist フラグと同等です。 u フラグも参照してください。 |
-X | 各ユーザー名/グループ名の使用可能なすべての文字を、最初の 8 文字で切り捨てずに印刷します。 |
-Z | プロセスのページ・サイズ設定を表示します。
|
-@ [ WparName ] | ワークロード区画 WparName に関連付けられたプロセス情報を表示します。 WparName パラメーターを指定しない場合、すべてのワークロード区画のプロセス情報が表示されます。 ワークロード区画情報はすべてのプロセスについて表示されます。 どのプロセス情報を表示するかを決定するには、 ps コマンドに他のフラグを指定します。 |
オプション
以下のオプションの前には負符号 (-) が付きません。
項目 | 説明 |
---|---|
a |
端末を使用するすべてのプロセスに関する情報を表示します (通常はユーザー自身のプロセスのみが表示されます)。 |
c |
プロセス・アドレス・スペースに格納されたコマンド・パラメーターではなく、 アカウンティング用にシステムに格納されたコマンド名を表示します。 |
e |
環境およびコマンドのパラメーターを表示します (最大 80 文字まで)。 |
ew |
e フラグからの表示を、1 行余分にラップします。 |
eww |
e フラグからの表示をラップし、LINE_MAX 値に到達するまで ENV リストを表示します。 |
ewww |
e フラグからの表示をラップし、INT_MAX 値に到達するまで ENV リストを表示します。 |
g |
すべてのプロセスを表示します。 |
l | F 、 s、 UID 、 PID 、 PPID 、 C 、 PRI 、 NI 、 ADDR 、 SZ 、 PSS 、 WCHAN 、 TTY 、 TIME 、および CMD の各フィールドを持つ長いリストを表示します。 |
n |
数値出力を表示します。 詳細なリストでは、WCHAN フィールドは記号ではなく数値で表示されます。 ユーザーのリストでは、USER フィールドは UID フィールドに置き換えられます。 |
s | (システム保守担当者によって使用される) 各プロセスのカーネル・スタックのサイズ (SSIZ )
を、基本出力フォーマットで表示します。 マルチスレッド・プロセスの場合、この値は常に 0 (ゼロ) です。 |
t tty |
制御 tty が tty 変数の値であるプロセスを表示します。この変数は、 ps コマンドで出力されるように指定する必要があります。つまり、 0 (端末の場合) /dev/tty/0 、 lft0 ( /dev/lft0 の場合)、および pts/2 ( /dev/pts/2 の場合) です。 |
u | ユーザー向け出力を表示します。 これには、 USER 、 PID 、 %CPU 、 %MEM 、 SZ 、 RSS 、 TTY 、 STAT 、 STIME 、 TIME 、および COMMAND の各フィールドが含まれます。 |
v | PGIN 、 SIZE 、 RSS 、 LIM 、 TSIZ 、 TRS 、 %CPU 、 %MEM の各フィールドを表示します。 |
w |
幅の広いフォーマットで出力します (80 ではなく 132 桁)。 繰り返される場合 (例えば、 ww) ) は、任意の幅の出力を使用します。 この情報を使って、コマンドをどれくらいの長さで表示するかが決められます。 |
x |
制御する端末を持つプロセスに加えて、制御する端末を持たないプロセスも表示します。 |
X |
フル・ユーザー名またはグループ名を出力します。 名前は切り捨てられません。 |
終了状況
このコマンドは、以下の終了値を戻します。
項目 | 説明 |
---|---|
0 | 正常終了。 |
>0 | エラーが発生しました。 |
セキュリティー
Attention RBAC users
: このコマンドは特権操作を実行できます。 特権命令を実行できるのは特権ユーザーのみです。 権限および特権について詳しくは、「セキュリティー」の『特権コマンド・データベース』を参照してください。 このコマンドに関連した特権および権限のリストについては、lssecattr
コマンドまたは getcmdattr
サブコマンドの項を参照してください。
例
- すべてのプロセスを表示するには、以下のように入力します。
ps -e -f
ps -X -e -f
- 特定のユーザーが所有するプロセスをリストするには、以下のように入力します。
ps -f -l -ujim,jane,su
/dev/console
および/dev/tty1
ttys タイプに関連付けられているプロセスをリストするには、次のように入力します。ps -t console,tty/1
- 端末と関連していないプロセスをリストするには、以下のように入力します。
ps -t -
- 指定フォーマットをフィールド指定子付きで表示するには、以下のように入力します。
出力は以下のようになります。ps -o ruser,pid,ppid=parent,args
RUSER PID parent COMMAND helene 34 12 ps -o ruser,pid,ppid=parent,args
- 指定フォーマットをフィールド・ディスクリプター付きで表示するには、以下のように入力します。
出力は以下のようになります。ps -o "< %u > %p %y : %a"
< RUSER > PID TT : COMMAND < helene > 34 pts/3 : ps -o < %u > %p %y : %a
- 現在の端末タイプによって制御されるプロセスおよびカーネル・スレッドに関する情報を表示するには、次のようにします。
出力は以下のようになります。ps -lm
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 240003 A 26 8984 7190 1 60 20 2974 312 pts/1 0:00 -ksh 400 S - - - 1 60 - - - - - - 200005 A 26 9256 8984 15 67 20 18ed 164 pts/1 0:00 ps 0 R - - - 15 67 - - - - - -
- すべてのプロセスおよびカーネル・スレッドに関する情報を表示するには、以下のように入力します。
出力は以下のようになります。ps -emo THREAD
USER PID PPID TID S C PRI SC WCHAN FLAG TTY BND CMD jane 1716 19292 - A 10 60 1 * 260801 pts/7 - biod - - - 4863 S 0 60 0 599e9d8 8400 - - - - - - 5537 R 10 60 1 5999e18 2420 - 3 - luke 19292 18524 - A 0 60 0 586ad84 200001 pts/7 - -ksh - - - 7617 S 0 60 0 586ad84 400 - - - luke 25864 31168 - A 11 65 0 - 200001 pts/7 - - - - - 8993 R 11 65 0 - 0 - - -
- すべての 64 ビット・プロセスをリストするには、次のように入力します。
ps -M
- プロセスのプロジェクト割り当ての詳細を表示するには、次のように入力します。
ps -P
- プロセスのページ・サイズ設定を表示するには、次のように入力します。
出力は以下のようになります。ps -Z
PID TTY TIME DPGSZ SPGSZ TPGSZ SHMPGSZ CMD 41856 pts/15 0:00 4K 4K 4K 64K ps 84516 pts/15 0:00 4K 4K 4K 64K ksh
ファイル
項目 | 説明 |
---|---|
/usr /bin /ps |
ps コマンドが入っています。 |
「 パフォーマンス管理」の ps コマンドを使用する。
System V ps コマンド
構文 (System V)
説明 (System V)
ps コマンドは、アクティブなプロセスについての情報を印刷します。 フラグを指定しないと、 ps は、制御端末に関連付けられているプロセスに関する情報を表示します。 出力には、プロセス ID、端末 ID、累積実行時間、およびコマンド名が含まれます。 フラグとともに表示される情報は、それに応じて異なります。
- 出力
ps コマンドで使用されるフラグにより、 表示される情報によって列見出しは変化します。 各見出しの定義を以下にリストします (これらの見出しを表示させるフラグを括弧内に示します)。
- F (-l)
- プロセス (または、-L オプションを指定した場合は
スレッド) に関連付けられたフラグ (16 進数で追加)。 プロセスおよびスレッドに関連付けられている、より重要な
F
フィールド・フラグ (16 進数および加算) のいくつかを以下に示します。F フィールドの表フラグ 16 進数 定義 SLOAD
0x00000001 プロセスがコア・メモリーで動作中であることを示す。 SNOSWAP
0x00000002 プロセスをスワップアウトできないことを示す。 STRC
0x00000008 プロセスがトレースされていることを示す。 SKPROC
0x00000200 カーネル・プロセスを示す。 SEXIT
0x00010000 プロセスが終了していることを示す。 SEXECED
0x00200000 プロセスにあることを示します。 SEXECING
0x01000000 プロセスが実行中 (exec を実行中) であることを示す。 TKTHREAD
0x00001000 スレッドがカーネル専用スレッドであることを示す。 注:/usr/include/sys/proc.h
ファイルと/usr/include/sys/thread.h
ファイルのp_flags
フィールドとt_flags
フィールドをそれぞれ参照することで、すべてのプロセス・フラグとスレッド・フラグの定義を確認できます。 - S (-l)
- プロセスまたはカーネル・スレッドの状態。プロセスの場合:
- O
- 存在しない
- A
- アクティブ
- W
- スワップ済み
- I
- アイドル
- Z
- 取り消し
- T
- 停止
カーネル・スレッドの場合:- O
- 存在しない
- R
- 実行中
- S
- スリープ中
- W
- スワップ済み
- Z
- 取り消し
- T
- 停止
UID (-f,- l)
- プロセスのユーザー ID 番号 (ログイン名は -f オプションの下に出力されます)。
PID (all)
- プロセスのプロセス ID。
PPID (-f,-l)
- 親プロセスのプロセス ID。
CLS (-c)
- プロセスのスケジューリング・クラス。 -c フラグが使用されている場合にのみ出力されます。
NI (-l)
sched_other
ポリシーの優先順位の計算に使用されるプロセスの nice 値。PRI (-c, -l)
- プロセスまたはカーネル・スレッドの優先順位。 数値が大きいほど優先順位が低くなります。
ADDR (-l)
- 通常の場合は、プロセス・スタックのセグメント番号が入っています。カーネル・プロセスの場合は、プリプロセス・データ領域のアドレスです。
SZ (-l)
- プロセスのコア・イメージのサイズ (ページ数)。
WCHAN(-l)
- プロセスまたはカーネル・スレッドが待機中またはスリープ中であるイベント。 カーネル・スレッドの場合、カーネル・スレッドが実行中であれば、このフィールドはブランクになります。 プロセスの場合、カーネル・スレッドが 1 つだけスリープしていると、待機チャネルはスリープ中のカーネル・スレッドの待機チャネルとして定義されます。それ以外の場合は、アスタリスクが表示されます。
STIME (-f,-u)
- プロセスの始動時刻。
LANG
環境変数がこのフィールドの表示を制御します。 TTY (all)
- プロセスのための制御端末で、以下のとおりです。
- -
- プロセスが端末と関連付けられていない。
- ?
- 不明
TIME (all)
- プロセスの合計実行時間。 時間の表示フォーマットは mm:ss または mmmm:ss (実行時間が 100 分に達した場合) です。これは -o time フラグを指定した場合の表示フォーマットとは異なります。
LTIME (-L)
- 個々の LWP の実行時間。
CMD (all)
- コマンド名を含む。 完全なコマンド名およびそのパラメーターは、-f フラグで表示されます。
LWP (-L)
- カーネル・スレッドの tid。
NLWP(-Lf)
- プロセス内のカーネル・スレッドの数。
PSR (-P)
- カーネル・スレッドがバインドされる論理プロセッサー番号 (バインドされる場合)。 プロセスの場合は、そのすべてのスレッドが同じプロセッサーにバインドされたときに、 このフィールドが表示されます。
RSS (-ly)
- プロセスの実メモリー (常駐セット) サイズ (1 KB 単位で)。
- Format
以下のリストは、システムによって認識されるフィールド指定子について説明しています。 これらのフィールド指定子を -o フラグと一緒に使用して、 ps コマンドの出力の形式を指定することができます。
システムによって認識されるフィールド指定子は、以下のとおりです。addr
- プロセス・スタックのセグメント番号を示します (正常の場合)。カーネル・プロセスの場合は、プリプロセス・データ域のアドレスを示します。 このフィールドのデフォルト・ヘッダーは
ADDR
です。 args
- 実行中のコマンドの完全名を示します。 切り捨てが行われる可能性がありますが、すべてのコマンド行引数が組み込まれます。 このフィールドのデフォルト・ヘッダーは
COMMAND
です。 c
- プロセスまたはスレッドの CPU 使用率は、システム・クロックが刻み、プロセスまたはスレッドが実行中であることが検出されるたびに増加します。 スケジューラーは、毎秒一度ずつ 2 で除算してこの値を減分させます。
sched_other
ポリシーでは、CPU 使用率はプロセスのスケジューリング優先順位を決定する際に使用されます。 値が大きい場合は、CPU 使用率の高いプロセスを示し、プロセスの優先順位が低くなります。一方、値が小さい場合は、入出力使用率の高いプロセスを示し、優先順位が高くなります。 このフィールドのデフォルト・ヘッダーはC
です。 class
- カーネル・スレッドのスケジューリング・ポリシーを示します。 ポリシーは、sched_other、
sched_fifo および sched_rr です。 このフィールドのデフォルト・ヘッダーは
CLS
です。 comm
- 実行中のコマンドの省略名を示します。 コマンド・ライン引数は含まれません。 このフィールドのデフォルト・ヘッダーは
COMMAND
です。 etime
- プロセス始動後の経過時間を示します。 経過時間は以下のフォーマットで表示されます。
dd は日数を、hh は時間数を、mm は分数を、ss は秒数を指定します。[[ dd -] hh: ]mm :ss
このフィールドのデフォルト・ヘッダーは
ELAPSED
です。 f
- プロセスに関連付けられたフラグ (16 進数で追加) を示します。 このフィールドのデフォルト・ヘッダーは
COMMAND
です。 fname
- プロセスの実行可能ファイルのベース名の最初の 8 バイトを示します。 このフィールドのデフォルト・ヘッダーは
COMMAND
です。 gid
- プロセスの有効なグループ ID 番号を、10 進の整数として示します。 このフィールドのデフォルト・ヘッダーは
GID
です。 -f フラグを指定すると、ログイン名が出力されます。 group
- プロセスの実効グループ ID を示します。 テキストによるグループ ID が表示されます。 テキストによるグループ ID を獲得できない場合には、10 進表記が使用されます。 このフィールドのデフォルト・ヘッダーは
GROUP
です。 lwp
- カーネル・スレッドのスレッド ID を示します。 このフィールドのデフォルト・ヘッダーは
TID
です。 nice
- プロセスの nice の値の 10 進値を示します。 このフィールドのデフォルト・ヘッダーは
NI
です。 nlwp
- プロセスが所有するカーネル・スレッドの数を示します。 このフィールドのデフォルト・ヘッダーは
THCNT
です。 pcpu
- 使用可能な CPU 時間に対する、使用された CPU 時間の比率をパーセンテージで示します。 このフィールドのデフォルト・ヘッダーは
%CPU
です。 pgid
- プロセスのグループ ID の 10 進値を示します。 このフィールドのデフォルト・ヘッダーは
PGID
です。 pid
- プロセス ID の 10 進値を示します。 このフィールドのデフォルト・ヘッダーは
PID
です。 pmem
- このプロセスによって使用されている実メモリーのパーセンテージを示します。 このフィールドのデフォルト・ヘッダーは
%MEM
です。 ppid
- 親プロセス ID の 10 進値を示します。 このフィールドのデフォルト・ヘッダーは
PPID
です。 pri
- プロセスまたはカーネル・スレッドの優先順位を示します。数値が大きいほど優先順位が低くなります。 このフィールドのデフォルト・ヘッダーは
PRI
です。 psr
- カーネル・スレッドがバインドされるプロセッサーの論理プロセッサー番号を示します (ある場合)。 このフィールドのデフォルト・ヘッダーは
PSR
です。 rgid
- プロセスの実グループ ID 番号を、10 進の整数として示します。 このフィールドのデフォルト・ヘッダーは
RGID
です。 rgroup
- プロセスの実グループ ID を示します。 テキストによるグループ ID が表示されます。 テキストによるグループ ID を獲得できない場合には、10 進表記が使用されます。 このフィールドのデフォルト・ヘッダーは
RGROUP
です。 rss
- プロセスの実メモリー (常駐セット) サイズを示します (1 KB 単位で)。 このフィールドのデフォルト・ヘッダーは
RSS
です。 ruid
- プロセスの実ユーザー ID 番号を、10 進の整数として示します。 このフィールドのデフォルト・ヘッダーは
RUID
です。 ruser
- プロセスの実ユーザー ID を示します。 テキストによるユーザー ID が表示されます。 テキストによるユーザー ID を獲得できない場合には、10 進表記が使用されます。 このフィールドのデフォルト・ヘッダーは
RUSER
です。 s
- プロセスの状態を示します。 このフィールドのデフォルト・ヘッダーは sです。
sid
- セッション・リーダーのプロセス ID を示します。 このフィールドのデフォルト・ヘッダーは
SID
です。 stime
- プロセスの開始時刻を示します。 LANG 環境変数がこのフィールドの表示を制御します。 このフィールドのデフォルト・ヘッダーは
STIME
です。 time
- プロセス始動後の CPU の累積時間を示します。 時間は
etime
と同じフォーマットで表示されます。 このフィールドのデフォルト・ヘッダーはTIME
です。 tty
- プロセスの制御端末名を示します。 このフィールドのデフォルト・ヘッダーは
TT
です。 uid
- プロセスの実効ユーザー ID 番号を 10 進の整数として示します。 このフィールドのデフォルト・ヘッダーは
UID
です。 user
- プロセスの実効ユーザー ID を示します。 テキストによるユーザー ID が表示されます。 テキストによるユーザー ID を獲得できない場合には、10 進表記が使用されます。 このフィールドのデフォルト・ヘッダーは
USER
です。 vsz
- プロセスのコア・イメージのサイズを、キロバイト単位の 10 進整数で示します。 このフィールドのデフォルト・ヘッダーは
VSZ
です。 wchan
- プロセスまたはカーネル・スレッドが待機中またはスリープ中であるイベントを示します。 カーネル・スレッドの場合、カーネル・スレッドが実行中であれば、このフィールドはブランクになります。 プロセスの場合、カーネル・スレッドが 1 つだけスリープしていると、待機チャネルはスリープ中のカーネル・スレッドの待機チャネルとして定義されます。それ以外の場合は、アスタリスクが表示されます。
このフィールドのデフォルト・ヘッダーは
WCHAN
です。
フラグ (System V)
いくつかのフラグは引数としてリストを受け付けます。 リスト内の項目は、コンマで区切るか、または二重引用符で囲んでコンマまたはスペースで区切ることができます。 proclist と pgrplist の値は数字でなければなりません。
項目 | 説明 |
---|---|
-a | セッション・リーダー、および端末に関連しないプロセスを除くすべてのプロセスに関する情報を標準出力に書き出します。 |
-A | すべてのプロセスに関する情報を標準出力に書き出します。 |
-c | スケジューラー属性を反映したフォーマットで情報を印刷します。 -c フラグは、以下で説明するように、 -f フラグおよび -l フラグの出力に影響を与えます。 |
-d | セッション・リーダーを除くすべてのプロセスに関する情報を、標準出力に書き込みます。 |
-e | カーネル・プロセスを除くすべてのプロセスに関する情報を、標準出力に書き込みます。 |
-f | 完全なリストを生成します。 |
-g pgrplist | pgrplistで指定されたプロセス・グループ内にあるプロセスに関する情報のみを標準出力に書き出します。 pgrplist の値は数字でなければなりません。 |
-G grplist | grplistで指定されたプロセス・グループ内にあるプロセスに関する情報のみを標準出力に書き出します。 -G フラグはグループ名を受け付けます。 |
-j | セッション ID とプロセス・グループ ID を表示します。 |
-l | 詳細なリストを作成します。 |
-L | プロセス内のアクティブ・スレッドの状況を出力します。 |
-o format | formatで指定された形式で情報を表示します。 format 変数には、複数のフィールド指定子を指定できます。 -o フラグと一緒に使用できるフィールド指定子については、上記の Format セクションで説明しています。 |
-p proclist | proclistで指定されたプロセス番号を持つプロセスに関する情報のみを表示します。 proclist の値は数字でなければなりません。 |
-P | プロセスの 1 次カーネル・スレッドがバインドされているプロセッサーの、論理プロセッサー番号を表示します (ある場合)。 |
-s sidlist | sidlist で指定されたセッション・リーダー ID を持つ、すべてのプロセスを表示します。 |
-t termlist | termlistで指定された端末に関連付けられているプロセスに関する情報のみを表示します。 |
-u uidlist | uidlistで指定されたユーザー ID 番号またはログイン名を持つプロセスに関する情報のみを表示します。 |
-U uidlist | uidlistで指定されたユーザー ID 番号またはログイン名を持つプロセスに関する情報のみを表示します。 |
-X | 各ユーザー名およびグループ名の使用可能なすべての文字を、最初の 8 文字で切り捨てずに印刷します。 |
-y | -l オプションと組み合わせると、 RSS フィールドおよび SZ フィールドがキロバイト単位で印刷され、 F フィールドおよび ADDR フィールドが印刷されないように、長いリストが変更されます。 |
終了状況 (System V)
このコマンドは、以下の終了値を戻します。
項目 | 説明 |
---|---|
0 | 正常終了。 |
>0 | エラーが発生しました。 |
セキュリティー (System V)
- アテンション RBAC ユーザー
- RBAC ユーザーへの注意: このコマンドは特権操作を実行できます。 特権命令を実行できるのは特権ユーザーのみです。 権限および特権について詳しくは、「 セキュリティー」の「特権コマンド・データベース」を参照してください。 このコマンドに関連した特権および権限のリストについては、lssecattr コマンドまたは getcmdattr サブコマンドの項を参照してください。
例 (System V)
- すべてのプロセスを表示するには、以下のように入力します。
ps -e -f
- ユーザー 'guest' が所有するプロセスをリストするには、次のように入力します。
ps -f -l -u guest
/dev/pts/0
および/dev/pts/1
端末に関連したプロセスをリストするには、次のように入力します。ps -t pts/0,pts/1
- 端末と関連していないプロセスをリストするには、以下のように入力します。
ps -t -
- 指定フォーマットをフィールド指定子付きで表示するには、以下のように入力します。
ps -o ruser,pid,ppid,args
- プロセス内のすべてのカーネル・スレッドについての情報を表示するには、次のように入力します。
ps -L
- すべてのプロセスのセッション ID とプロセス・グループ ID を表示するには、次のように入力します。
ps -jA
- プロセスのスケジューリング・クラスと優先順位を表示するには、次のように入力します。
ps -c -l
- カーネル・スレッドについての情報および、プロセス内のカーネル・スレッドの数を表示するには、次のように入力します。
ps -L -f
- プロセスまたはカーネル・スレッドがバインドされているプロセッサーを表示するには、次のように入力します。
ps -P
- 特定のプロセス (以下の例では
inetd
) の ASCII アートを印刷するには、次のように入力します。
出力は次のようになります。ps -T 14220
PID TTY TIME CMD 14220 - 0:00 inetd 16948 - 0:00 |\--telnetd 32542 pts/4 0:00 | \--ksh 26504 - 0:00 |\--telnetd 41272 pts/5 0:00 | \--ksh 26908 pts/5 0:00 | \--vi 28602 - 0:00 |\--telnetd 24830 pts/0 0:00 | \--ksh 676416 pts/0 0:00 | \--ksh 29984 - 0:00 |\--telnetd 38546 pts/6 0:00 | \--ksh 32126 - 0:00 |\--telnetd 11162 pts/7 0:00 | \--ksh 34466 - 0:00 |\--rpc.ttdbserver 35750 - 0:00 |\--telnetd 23612 pts/3 0:00 | \--ksh 36294 - 0:00 |\--telnetd 38096 pts/8 0:00 | \--ksh 39740 - 0:00 |\--telnetd 42226 pts/9 0:01 | \--ksh 40632 - 0:00 |\--telnetd 40232 pts/2 0:00 | \--ksh 32910 pts/2 0:00 | \--dbx 987990 pts/2 0:00 | \--a.out 40722 - 0:00 |\--telnetd 16792 pts/10 0:00 | \--ksh 37886 pts/10 0:00 | \--ps 105716 - 0:00 \--telnetd 29508 pts/1 0:00 \--ksh 39478 pts/1 0:00 \--ksh 38392 pts/1 0:00 \--vi
- 指定された pid をルートとするすべてのプロセスに関する情報を出力するには、次のように入力します。
出力は次のようになります。ps -fL 14220
UID PID PPID C STIME TTY TIME CMD root 14220 8676 0 Apr 07 - 0:00 /usr/sbin/inetd root 16948 14220 0 Apr 06 - 0:00 telnetd -a root 23612 35750 0 Apr 10 pts/3 0:00 -ksh root 24830 28602 1 18:30:56 pts/0 0:00 -ksh root 28602 14220 0 18:30:55 - 0:00 telnetd -a root 32542 16948 0 Apr 06 pts/4 0:00 -ksh root 34466 14220 0 Apr 10 - 0:00 rpc.ttdbserver 100083 1 root 35750 14220 0 Apr 10 - 0:00 telnetd -a root 40228 24830 8 18:36:01 pts/0 0:00 ps -fL 14220
- すべてのプロセスを、展開されたユーザー名を使用して表示するには、以下のように入力します。
ps -X -e -f
- スレッドのスケジューリング・ポリシーを表示するには、以下のコマンドを入力します。
#ps -m -o THREAD,sched USER PID PPID TID ST CP PRI SC WCHAN F TT BND COMMAND SCH suresana 1609830 4227284 - A 16 68 1 - 200001 pts/144 - ps -m -o THREAD sched 0 - - - 6381739 R 16 68 1 -400000 - - - 0 suresana 4227284 4239476 - A 1 60 1 -200801 pts/144 - bash 0 - - - 4177981 S 1 60 1 -410400 - - - 0 suresana 4239476 921694 - A 0 60 1 -240001 pts/144 - -ksh 0 - - - 5554385 S 0 60 1 -10400 - - - 0
ファイル (System V)
項目 | 説明 |
---|---|
/usr/sysv/bin/ps | System V R4 ps コマンドが入っています。 |
/etc/passwd | ユーザー ID 情報が入っています。 |
/dev/pty* | 端末 (PTY ) 名を示します。 |
/dev/tty* | 端末 (TTY ) 名を示します。 |