.\" Copyright (c) 1980, 1990, 1991, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 .\" %FreeBSD: src/bin/ps/ps.1,v 1.24.2.5 2001/08/16 10:01:06 ru Exp % .\" .\" $FreeBSD: doc/ja_JP.eucJP/man/man1/ps.1,v 1.17 2001/07/29 05:14:52 horikawa Exp $ .Dd April 18, 1994 .Dt PS 1 .Os .Sh 名称 .Nm ps .Nd プロセスの状態の表示 .Sh 書式 .Nm .Op Fl aCcefhjlmrSTuvwx .Op Fl M Ar core .Op Fl N Ar system .Op Fl O Ar fmt .Op Fl o Ar fmt .Op Fl p Ar pid .Op Fl t Ar tty .Op Fl U Ar username .Op Fl W Ar swap .br .Nm .Op Fl L .Sh 解説 .Nm は、制御端末を持つ自分 (あなた) のプロセスの情報を、 ヘッダ行に続いて表示します。 この情報は、制御端末順に整列され、その中ではプロセス .Tn ID 順に整列されます。 .Pp 表示される情報は、一連のキーワードによって選ばれます .Pf ( Fl L , .Fl O , .Fl o オプションを参照)。 デフォルトの出力フォーマットは、各プロセス毎に、 プロセス .Tn ID , 制御端末・cpu 時間 (ユーザ時間とシステム時間の両方)・ プロセス状態・プロセスに関連するコマンドから成ります。 .Pp プロセスファイルシステム ( .Xr procfs 5 参照) は、 .Nm が実行されている時にマウントされているべきです。そうでない場合、 すべての情報が利用可能になるわけではありません。 .Pp オプションを以下に示します。 .Bl -tag -width indent .It Fl a 自分のプロセスに加え自分以外のプロセスの情報も同様に表示します。 この機能は、 .Va kern.ps_showallprocs sysctl を 0 に設定することで無効化できます。 .It Fl c ``コマンド'' 桁の出力を、すべてのコマンドラインを表示するのではなく、 実行形式名だけを表示するように変更します。 .It Fl C cpu パーセンテージの計算を、``常駐'' 時間を無視する ``生'' cpu 時間を使う方法に変更します (通常これは影響ありません)。 .It Fl e 環境 (変数) も同時に表示します。 .It Fl f スワップアウトされたプロセスに関して、 コマンドラインと環境の情報を表示します。 ユーザの uid が 0 である場合のみ、このオプションが有効になります。 .It Fl h ページ毎に 1 つヘッダが入るようにします。 .It Fl j 次のキーワードに関する情報を表示します: user, pid, ppid, pgid, sess, jobc, state, tt, time, command。 .It Fl L 有効なキーワードの一覧を表示します。 .It Fl l 次のキーワードに関する情報を表示します: uid, pid, ppid, cpu, pri, nice, vsz, rss, wchan, state, tt, time, command。 .It Fl M 名前リストの値を取り出すとき、 デフォルトの .Pa /dev/kmem の代わりに、指定した .Ar core から取り出します。 .It Fl m プロセス .Tn ID 順ではなく、メモリ使用量順に整列します。 .It Fl N デフォルトの .Pa /kernel の代わりに、指定された .Ar system から名前リストを取り出します。 .It Fl O デフォルトで表示される情報に加え、 指定されたキーワードに関する情報を、 プロセス .Tn ID の後に挿入する形式で表示します。 各キーワードの後ろには、等号 (``='') と文字列を追加しても構いません。 この場合、標準のヘッダの代わりに指定された文字列が表示されます。 .It Fl o 指定されたキーワードに関する情報を、表示します。 各キーワードの後ろには、等号(``='')と文字列を追加しても構いません。 この場合、標準のヘッダの代わりに指定された文字列が表示されます。 .It Fl p 指定したプロセス .Tn ID に関する情報を表示します。 .It Fl r プロセス .Tn ID 順ではなく、現在の cpu 利用率順に整列します。 .It Fl S プロセス時間を計算するのに、 終了した子プロセスの時間を親プロセスに合計するように変更します。 .It Fl T 標準入力のデバイスに取り付けられたプロセスの情報を表示します。 .It Fl t 指定された端末デバイスに取り付けられたプロセスの情報を表示します。 .It Fl U 指定された .Ar username に属するプロセスを表示します。 .It Fl u 次のキーワードに関する情報を表示します: user, pid, %cpu, %mem, vsz, rss, tt, state, start, time, command。 .Fl u オプションを指定すると .Fl r オプションも暗に指定したことになります。 .It Fl v 次のキーワードに関する情報を表示します: pid, state, time, sl, re, pagein, vsz, rss, lim, tsiz, %cpu, %mem, command。 .Fl v オプションを指定すると .Fl m オプションも暗に指定したことになります。 .It Fl W libkvm を使う 代わりに指定したファイルからスワップ情報を取り出します。 .It Fl w デフォルトの現行ウィンドウ幅ではなく、132 桁幅で表示します。 一度より多く .Fl w オプションを指定すると、 .Nm はウィンドウ幅にかかわらず、必要なだけの幅を使用します。 .It Fl x 制御端末のないプロセスの情報も表示します。 .El .Pp 有効なキーワードの全リストを以下に示します。 いくつかのキーワードに関してはさらに詳しく述べます。 .Bl -tag -width indent .It %cpu プロセスの cpu 利用率です。実時間で最近 1 分間の減衰平均です。 計算の基点となる時間は変化するので (プロセスはまだ生れたばかりかもしれないので)、 .Tn \&%CPU フィールド全部の合計は 100% を越える可能性もあります。 .It %mem プロセスで使われている実メモリのパーセンテージです。 .It flags インクルードファイル .Aq Pa sys/proc.h でプロセスに定義されたフラグです。 .Bl -column SNOCLDSTOP SNOCLDSTOP .It Dv "P_ADVLOCK" Ta No "0x00001 プロセスは POSIX 提案ロックを保持している" .It Dv "P_CONTROLT" Ta No "0x00002 制御端末を持っている" .It Dv "P_INMEM" Ta No "0x00004 メモリに読み込まれている" .It Dv "P_NOCLDSTOP" Ta No "0x00008 子プロセスが停止しても SIGCHLD を送らない" .It Dv "P_PPWAIT" Ta No "0x00010 親プロセスが、子プロセスが exec/exit するのを待っている" .It Dv "P_PROFIL" Ta No "0x00020 プロファイル付きで実行された" .It Dv "P_SELECT" Ta No "0x00040 select 中; wakeup/waiting は危険である" .It Dv "P_SINTR" Ta No "0x00080 sleep は割り込み可能" .It Dv "P_SUGID" Ta No "0x00100 最後の実行以来、id 特権が設定されている" .It Dv "P_SYSTEM" Ta No "0x00200 システムプロセス: シグナルや stat やスワップが無い" .It Dv "P_TIMEOUT" Ta No "0x00400 sleep 中にタイムアウトした" .It Dv "P_TRACED" Ta No "0x00800 デバッグプロセスはトレースされている" .It Dv "P_WAITED" Ta No "0x01000 デバッグプロセスは子プロセスを待っている" .It Dv "P_WEXIT" Ta No "0x02000 終了動作中" .It Dv "P_EXEC" Ta No "0x04000 プロセスは exec で呼ばれた" .It Dv "P_OWEUPC" Ta No "0x20000 次の ast プロセスが addupc() 呼び出しの借り" .It Dv "P_SWAPPING" Ta No "0x40000 プロセスはスワップされている" .El .It lim .Xr setrlimit 2 の呼び出しで指定される、メモリ使用量のソフトリミットです。 .It lstart コマンドの実行が始まった正確な時刻を、 .Xr strftime 3 に記述された ``%c'' フォーマットで表示します。 .It nice プロセススケジューリングにおける増加値です .Ns ( Xr setpriority 2 参照)。 .\" .Ns により ( と setpriority が離れるのを防ぐ .\" by horikawa@jp.freebsd.org (Feb 9 1997) .It rss プロセスの実メモリ(常駐分)の大きさ(1024バイト単位)です。 .It start コマンドが開始された時間です。 コマンドが開始されたのが 24 時間以内なら、 開始時刻は .Xr strftime 3 で記述された ``%l:ps.1p'' フォーマットで表示されます。 コマンドが開始されたのが 7 日以内なら、 開始時刻は ``%a6.15p'' フォーマットで表示されます。 さもなくば、開始時刻は ``%e%b%y'' フォーマットで表示されます。 .It state プロセスの状態を文字の列で表示します。例えば、 .Dq Tn RWNA の最初の文字は、プロセスが runnable 状態であることを示しています。 .Pp .Bl -tag -width indent -compact .It D プロセスはディスク (あるいは他の割り込み不可能な短期間の) 待ち状態です。 .It I プロセスは idle 状態 (20 秒以上 sleep している) です。 .It J プロセスは .Xr jail 2 中のものです。 牢屋のホスト名はは .Ql Li /proc//status に記述されています。 .It R プロセスは runnable 状態です。 .It S プロセスは 20 秒未満の sleep 状態です。 .It T プロセスは stop している状態です。 .It Z プロセスは死んでいる状態 (``ゾンビ'') です。 .El .Pp さらにこの後に文字があれば、さらなる状態情報を示します。 .Pp .Bl -tag -width indent -compact .It + プロセスはその制御端末のフォアグラウンドプロセスグループに属しています。 .It < プロセスは .Tn CPU のスケジュール優先度が上げられています。 .It > プロセスはメモリ要求に対するソフトリミットが指定されており、 現在そのリミットを越えています。 このようなプロセスは (必然的に) スワップされていません。 .It A プロセスはランダムなページ置換 ( .Xr madvise 2 における .Dv MADV_RANDOM のことで、例えば、 .Xr lisp 1 でのガーベージコレクション) を要求しました。 .It E プロセスは終了しようとしています。 .It L プロセスは実メモリ中にロックされたページ (例えば、raw .Tn I/O 用) を持っています。 .It N プロセスは .Tn CPU スケジューリング優先度 ( .Xr setpriority 2 参照) が下げられています。 .It S プロセスは .Tn FIFO ページ置換 ( .Xr madvise 2 における .Dv MADV_SEQUENTIAL のことで、 例えば、仮想記憶の多量のデータを順次アクセスする 大規模画像処理プログラム) を要求しました。 .It s プロセスはセッションリーダです。 .It V プロセスは .Xr vfork 2 の間、一時中断されています。 .It W プロセスはスワップアウトされています。 .It X プロセスはトレースされているか、デバッグされています。 .El .It tt もしあれば、制御端末のパス名の省略形です。 省略形は .Pa /dev/tty に続く 3 文字か、コンソール場合の ``con'' です。 もはやプロセスがその制御端末に到達できない (即ち、revoke された) 場合、 後に ``-'' が付きます。 .It wchan プロセスが待っているイベント (システム内のアドレス)。 数字で表示される時には、アドレスの最初の部分は削られて その結果が 16 進で表示されます。例えば 0x80324000 では 324000 と表示されます。 .El .Pp キーワード command には、 すでに終了しているのに親がまだ wait してくれていない プロセス(即ちゾンビ)は ``'' と表示されます。 終了しようとしてブロックされているプロセスは ``'' と表示されます。 .Nm は、メモリやスワップ領域を検査して、 プロセスが生成されたときのファイル名や引数を推測します。 この方法は、本質的に少々信頼できるものではなく、 プロセスはとにかくこの情報を破壊することができます。 だから、表示されるコマンド名や引数をあまり信用しすぎてはなりません。 一方、キーワード ucomm (アカウンティング名) は信用できます。 .Sh キーワード 以下は有効なキーワードとその意味の全リストです。 そのうちいくつかは別名があります。 .Pp .Bl -tag -width sigignore -compact .It %cpu cpu 使用率 (別名 pcpu) .It %mem メモリ使用率 (別名 pmem) .It acflag アカウンティングフラグ (別名 acflg) .It command コマンド名と引数 .It cpu 短期間 cpu 使用係数 (スケジューリング用) .It flags 16 進数のプロセスフラグ (別名 f) .It inblk 総ブロック読み出し数 (別名 inblock) .It jobc ジョブコントロール数 .It ktrace トレース中フラグ .It ktracep トレース中の vnode .It lim メモリ利用のリミット .It logname プロセスを開始したユーザのログイン名 .It lstart 開始時刻 .It majflt 総ページフォールト数 .It minflt 総ページ再生数 .It msgrcv 総メッセージ受信数 (パイプ/ソケットからの読み込み) .It msgsnd 総メッセージ送信数 (パイプ/ソケットへの書き込み) .It nice nice 値 (別名 ni) .It nivcsw 総強制的コンテキストスィッチ数 .It nsigs 総シグナル受け入れ数 (別名 nsignals) .It nswap 総スワップイン/スワップアウト数 .It nvcsw 総自発的コンテキストスィッチ数 .It nwchan wait チャネル (アドレスで表示) .It oublk 総ブロック書き込み数 (別名 oublock) .It p_ru リソース利用量 (ゾンビに対してのみ有効) .It paddr スワップアドレス .It pagein ページイン数 (majflt と同じ) .It pgid プロセスグループ番号 .It pid プロセス .Tn ID .It poip 進行中のページアウト数 .It ppid 親プロセス .Tn ID .It pri スケジューリング優先度 .It re 実メモリ常駐時間 (秒単位; 127 = 無限) .It rgid 実グループ .Tn ID .It rlink run 行列における逆リンク (あるいは 0) .It rss 常駐セットサイズ .It rsz 常駐セットサイズ + (テキストのサイズ/テキストの利用総数) (別名 rssize) .\" つまり、共通テキストを複数プロセスで分担しているわけだ .It rtprio 実時間優先度 (101 = 実時間プロセスではない) .It ruid 実ユーザ .Tn ID .It ruser ユーザ名 (ruid から得られたもの) .It sess セッションポインタ .It sig 遅延されたシグナル (別名 pending) .It sigcatch 捕獲されたシグナル (別名 caught) .It sigignore 無視されたシグナル (別名 ignored) .It sigmask ブロックされたシグナル (別名 blocked) .It sl sleep 時間 (秒単位; 127 = 無限) .It start 開始時刻 .It state 記号でのプロセス状態 (別名 stat) .It svgid setgid プログラムでの saved gid .It svuid setuid プログラムでの saved uid .It tdev 制御端末のデバイス番号 .It time ユーザ + システムの合計 cpu 時間 (別名 cputime) .It tpgid 制御端末プロセスグループ .Tn ID .\".It trss .\"text resident set size (in Kbytes) .\"テキスト常駐セットサイズ(Kbyte単位) .It tsess 制御端末セッションポインタ .It tsiz テキストサイズ (K バイト単位) .It tt 制御端末名 (2 文字の省略形) .It tty 制御端末の完全な名前 .It uprocp プロセスポインタ .It ucomm アカウンティングで使われるコマンド名 .It uid 実効ユーザ .Tn ID .It upr システムコールから帰る時のスケジューリング優先度 (別名 usrpri) .It user ユーザ名 (uid から得たもの) .It vsz k バイト単位の仮想記憶サイズ (別名 vsize) .It wchan wait チャネル (シンボル名で表示) .It xstat 終了ステータスまたは stop ステータス (stop プロセスかゾンビプロセスの時のみに有効) .El .Sh 関連ファイル .Bl -tag -width /var/run/kvm_kernel.db -compact .It Pa /dev 特殊ファイルとデバイスの名前 .It Pa /dev/drum デフォルトのスワップデバイス .It Pa /dev/kmem デフォルトのカーネルメモリデバイス .It Pa /var/run/dev.db .Pa /dev 名前データベース .It Pa /var/run/kvm_kernel.db システム (カーネル) の名前リストデータベース .It Pa /kernel デフォルトのシステムの名前リスト .It Pa /proc .Xr procfs 5 のマウントポイント .El .Sh 関連項目 .Xr kill 1 , .Xr w 1 , .Xr kvm 3 , .Xr strftime 3 , .Xr procfs 5 , .Xr pstat 8 , .Xr sysctl 8 .Sh バグ .Nm はシステムより速く実行できず、 他のプロセスと同様にスケジュールされて実行されるので、 表示される情報は正確ではあり得ません。