PS(1) — NEWS-OS Programmer’s Manual
名称
ps − プロセス状態の表示
形式
ps [ acegklnstuvwxU# ]
解説
ps は、プロセスに関する情報を表示します。 通常は、自分のプロセスについてだけが表示の対象となりますが、 a を指定すると他のユーザのプロセスまで表示され、 x を指定すると端末が無いプロセスまでが表示されます。
どの出力フォーマットでも各プロセスごとに、次のものを必ず表示します。
PID プロセスID
TT プロセスを起動した端末
TIME そのプロセスが使用した CPU タイム (ユーザおよびシステムの両方の時間が含まれている)
STAT 状態
COMMAND 実行中のコマンド
状態は、例えば RWNA ように連続する 4 文字で示されます。 最初の文字は処理の実行状態を示します。
R 実行可能なプロセス
T 停止したプロセス
P ページ待ち中のプロセス
D ディスク中で (または短い期間) 待機中のプロセス
S 20 秒以内のスリープをしているプロセス
I アイドル状態 (20 秒以上スリープしている) のプロセス
2 番目の文字はスワップアウトされたかどうかを示します。
W スワップアウトされている
ブランク (コア上に)ロードされている
> プロセスにメモリ要求に対する soft limit を指定していて、 その限界値を越えている。 このようなプロセスは(当然)スワップされていません。
3 番目の文字は、 プロセスの実行中に変更された CPU スケジュールの優先順位(nice 値)を示します。
N 優先順位が下がっている
< 人為的に上げられている
ブランク プロセスが特別扱いされずに実行を続けている
最後の文字は、 仮想メモリ置換に関するプロセスのさまざまな特別な処置を示します。 この文字は vadvise(2) コールのオプションに相当します。
A VA_ANOM
S VA_SEQL
ブランク VA_NORM
A が表示される代表例は、 lisp(1) のガーベージコレクション中です。 また、 S の代表例は、 仮想メモリを連続したアドレスの膨大なデータに使うような 大きなイメージ処理プログラムです。
使用できるオプション:
a 端末を持つすべてのプロセスについて問い合わせます。 (普通は所有者が持つプロセスのみを表示します。)
c プロセスのアドレススペースに保存されていたコマンド引数でなく、 アカウントの目的でシステムの内部に蓄積したコマンド名を表示します。 これは、 プロセスが前者を自由に破壊できるので、 情報が少ない時には、 より確実です。
e コマンドの引数の他に、 環境に関する表示を求めます。
g すべてのプロセスの表示を求めます。 このオプションを指定しない時は、 ps は「興味がある」プロセスのみを表示します。 もしプロセスグループリーダがあれば、 プロセスは興味の対象外とみなされます。 通常、 トップレベルのコマンドインタープリタ、 および空いている端末からのユーザのログインを待っているプロセスが除外されます。
k ファイル /vmcore が /dev/kmem および /dev/mem の代わりに使われることを意味します。 これは死んだシステムのデバッグに使用されます。
l ロング形式での表示を求めます。 フィールド PPID、CP、PRI、NI、ADDR、SIZE、RSS、WCHAN を含みます。 各フィールドについては以下を参照してください。
n 数値表現での出力を求めます。 ロング形式の表示では、 WCHAN フィールドをシンボル表現の代わりに数値表現にします。 また、 ユーザリスティングでは、 USER フィールドを UID フィールドに代えます。
s 各プロセスのカーネルスタックサイズ SSIZ (システム保守者により使用される) を、 基本的な出力フォーマットに加えます。
tx 出力するプロセスを、 制御している端末が x のものだけに限定します (これは、 ps の表示のように指定する必要があります。 たとえば、 t00 は tty00 を、 tco はコンソールを、 tp0 は ttyp0 を、 t? はプロセスに端末がないことを、 t は現在使っている端末を、など)。 このオプションは最後に指定しなくてはなりません。
u ユーザオリエンテッドな出力を作ります。 出力にはフィールド USER、%CPU、NICE、SIZE、RSS を含みます。 各フィールドについては以下を参照してください。
v 出力に仮想メモリの状態を含むバージョン。 出力にはフィールド RE、SL、PAGEIN、SIZE、RSS、LIM、 TSIZ、TRS、%CPU、%MEM を含みます。 各フィールドについては以下参照してください。
w 幅広の出力フォーマット (80 でなく 132 カラム) を指定します。 繰り返した場合、 つまり ww とした際は、 幅の制限無しで出力します。 この情報はコマンドの表示の長さをどれくらいにするかを決めるときに使用します。
x 端末がないプロセスについても表示を求めます。
U ps によって、 システム情報が保持しているプライベートデータベースを更新します。 ps U が /etc/rc ファイルに含まれていなければなりません。
# (# によって示される) プロセス番号を指定する。 出力は指定したプロセスに限定されます。 このオプションもまた最後にしなければなりません。
2 番目の引数は、 システムのネームリストを含むファイルと見なされます。 指定がなければ、 /vmunix が使用されます。 k オプションを指定した場合、 3 番目の引数は、 ps に対し、 /vmcore の代わりにする core をどこから捜すかを指示します。 もし 4 番目の引数を与えると、 スワップファイルの名前と見なされます。 デフォルトでは /dev/drum が使用されます。
フィールドはすべての出力形式で共通ではありません。
USERプロセスの所有者名
%CPUプロセスの CPU 利用率。 これは 1 分間の重み付き平均です。 できたばかりのプロセスについては、 正確に時間を測定できないので、 %CPU フィールドの合計が 100% を越えることがあります。
NICE(または NI) プロセススケジューリングの増分 (setpriority(2) 参照)
SIZEプロセスの仮想サイズ (1024 バイト単位)
RSSプロセスの実メモリ(常駐セット)サイズ (1024 バイト単位)
LIMメモリの使用に関するソフトリミット、 setrlimite(2) コールを通じて指定されます。 制限が指定されていないときは xx で表わされます
TSIZEテキストイメージ (共有プログラム) のサイズ
TRSテキストの常駐セット (実メモリ) のサイズ
%MEMこのプロセスに使われている実メモリのパーセンテージ
REプロセスの常駐時間 (コアに常駐した秒数)
SLプロセスのスリープ時間 (ブロックされた秒数)
PAGEINコアにロードされていないページをプロセスが参照したことによって、 ディスクを入出力した回数
UIDプロセス所有者の数値表現によるユーザID
PPID親プロセスの数値表現によるID
CP短時間の CPU 利用ファクタ (スケジューリングに用いられる)
PRIプロセスの優先順位 (割り込み不可能な待ち状態の時には不確実)
ADDRプロセスのスワップアドレス
WCHANプロセスが待ち状態になっている最中のイベント (システム中のアドレス) 。 数値出力を要求 (n フラグ参照)をしていなければ、 アドレスを分類するシンボルが選択される。 この場合、 アドレスのイニシャル部分が取り除かれ、 16 進形式で表示される。 例えば、 0x80004000 は 4000 で表わします。
F フラグは <sys/proc.h> 中のプロセスと関連してる
SLOAD000001メモリ内にある
SSYS000002スワッパーまたはページャープロセス
SLOCK000004スワップアウトされたプロセス
SSWAP000005セーブ領域フラグ
STRC000010プロセスはトレースされている
SWTED000020他のトレースフラグ
SULOCK000040コア上でユーザが設定可能なロック
SPAGE000080ページ待ち状態のプロセス
SKEEP000100スワップアウトを妨げる他のフラグ
SDLYU000200ページのロック解除が遅れている
SWEXIT000400終了処理実行中
SPHYSIO000800物理 I/O (bio.c)実行中
SVFORK001000vfork() の結果のプロセス
SVFDONE002000他の vfork フラグ
SNOVM004000vm がない、vfork() によって起動された
SPAGI008000inode からの要求による init データ領域
SANOM010000異常な vm の動作をシステムが検出した
SUANOM020000異常な vm の動作がユーザへ警告された
STIMO040000スリープ中のタイムアウト
SDETACH080000init によって分離したものを受け継いだ
SOUSIG100000古いシグナル機構を使用
プロセスの終了後、 親プロセスがまだそのプロセスの待ち状態になっていない時、 そのプロセスは、 <defunct> とマークされます。 終了をブロックされているプロセスは <exiting> とマークされます。 メモリまたはスワップ領域の検査によって生成されたプロセスのとき、 ps は、 与えられた引数とファイル名を推測します。 この方法はいく分信頼できず、 また、 ある種のイベントにおいて、 プロセスにこの情報を破壊する権利が与えられます、 従って、 名前をあてにすることができないことがあります。
関連ファイル
/vmunixシステムのネームリスト
/dev/kmemカーネルメモリ
/dev/drumスワップデバイス
/vmcoreコアファイル
/devスワップデバイスと端末名を見つけるために検索される
/etc/psdatabaseシステムのネームリストや、デバイス、およびウェイトチャネル情報
関連事項
バグ
ps の実行中でも、 状態は変化します。 ps が表示する情報は、 現状の近似にすぎません。
NEWS-OSRelease 4.2.1R