procfs(5) FreeBSD 一般コマンドマニュアル

procfs

前のページ 上に戻る 次のページ

procfs




解説

     プロセスファイルシステム、すなわち procfs はファイルシステム中でシステム
     プロセステーブルの閲覧を可能にします。 procfs は通常 /proc にマウントさ
     れ、 ps(1)w(1) といったプログラムの完全な動作に必要なものです。

     procfs は以前の FreeBSD 1.1 procfs での実装とは異なり、プロセス空間に 2
     つのレベルの視点を提供します。高いレベルでは、プロセスはそれ自身が、10 進
     数による先頭に 0 の付かない自分のプロセス ID によって、名前付けされます。
     また curproc と呼ばれる調査要求を行なったプロセスを参照する特別なノードが
     存在します。

     それぞれのノードは以下の項目を含むディレクトリです:

     それぞれのディレクトリは数個のファイルを含んでいます:

     ctl     多様な制御操作をサポートする書き込みのみのファイル。制御コマンド
             は ctl ファイルに文字列として書き込まれます。制御コマンドは:
             attach  対象プロセスを停止し、送信プロセスに対してデバッグ制御プ
                     ロセスとなるよう手配する。
             detach  対象プロセスの実行を継続し、デバッグプロセスの制御下から
                     離します (送信プロセスである必要はありません)。
             run     シグナルが届くか、ブレークポイントに達するか、または対象
                     プロセスが終了するまで対象プロセスを継続して動作させま
                     す。
             step    シグナルを届けずに対象プロセスをシングルステップさせま
                     す。
             wait    対象プロセスがデバッグに適した平衡状態になるまで待ちま
                     す。対象プロセスは他のどのコマンドが許可されるよりも前に
                     この状態になる必要があります。

             文字列は、 SIG 接頭辞なしの小文字のシグナル名でも構いません。この
             場合、指定したシグナルがプロセスに届けられます。 ((sigaction(2)
             参照)。

     dbregs  <machine/reg.h> 中の struct dbregs で定義されるデバッグレジスタ。
             現在 dbregs は i386 アーキテクチャでのみ実装されています。

     etype   file 項目によって参照される実行形式のタイプ。

     file    プロセステキストが読まれる vnode への参照。これはプロセスのシンボ
             ルテーブルへのアクセスを得る、またはプロセスのもう 1 つのコピーを
             始めるために使われます。

     fpregs  <machine/reg.h> 中の struct fpregs で定義される浮動小数点レジス
             タ。 fpregs は、汎用レジスタセットと浮動小数点レジスタセットが明
             確に区別されたマシンにのみ実装されています。

     map     プロセスの仮想メモリのマップ。

     mem     プロセスの完全な仮想メモリイメージ。プロセス中に存在するアドレス
             のみがアクセスできます。このファイルに対する読み書きはプロセスを
             ルです。各行の書式は rlimit current max であり、-1 は無限を意味し
             ます。

     status  プロセスの状態。このファイルは読み込みのみで、空白で分けられた以
             下の多数のフィールドを含んだ 1 行を返します:

             o   コマンド名
             o   プロセス ID
             o   親プロセス ID
             o   プロセスグループ ID
             o   セッション ID
             o   制御端末の major,minor 、またはもし制御端末がない場合には
                 -1,-1 。
             o   プロセスフラグのリスト: ctty 制御端末がある、 sldr プロセスが
                 セッションリーダである、 noflags 他の 2 つのフラグがセットさ
                 れていない。
             o   コンマで区切った秒とマイクロ秒によるプロセス開始時刻
             o   コンマで区切った秒とマイクロ秒によるユーザ時間
             o   コンマで区切った秒とマイクロ秒によるシステム時間
             o   ウェイトチャンネルメッセージ
             o   実効ユーザ ID と全てコンマで区切られたグループリスト(最初の項
                 目は実効グループ ID) から成っているプロセスクリデンシャル

     対象がデバッガによって fork/exec される通常のデバッギング環境では、デバッ
     ガが fork し、子は自分自身で止まる(例えば自分で与えた SIGSTOP) べきです。
     親は適切な ctl ファイルを通じて wait そして attach コマンドを発行するべき
     です。子プロセスは exec 呼び出しが終わった直後に SIGTRAP を受け取ります
     (execve(2) 参照)。

     それぞれのノードはプロセスのユーザに所持され、ユーザのプライマリグループ
     に属します。 mem ノードは例外的に kmem グループに属します。


関連ファイル

     /proc                  procfs の通常のマウントポイント。
     /proc/pid              プロセス pid のプロセス情報を含んだディレクトリ
     /proc/curproc          カレントプロセスのプロセス情報を含んだディレクトリ
     /proc/curproc/cmdline  プロセスの実行形式名
     /proc/curproc/ctl      プロセスへの制御メッセージを送るために使われます
     /proc/curproc/etype    実行形式タイプ
     /proc/curproc/file     実行形式イメージ
     /proc/curproc/fpregs   プロセス浮動小数点レジスタセット
     /proc/curproc/map      プロセスの仮想メモリマップ
     /proc/curproc/mem      プロセスの完全な仮想アドレス空間
     /proc/curproc/note     プロセスへのシグナル送信に使われます
     /proc/curproc/notepg   プロセスグループへのシグナル送信に使われます
     /proc/curproc/regs     プロセスのレジスタセット
     /proc/curproc/rlimit   プロセスの現在および最大の rlimit
     /proc/curproc/status   プロセスの現在の状態


関連項目

     mount(2), sigaction(2), unmount(2), mount_procfs(8)


ABELNET VPSサービス