PROCFS(5) | FreeBSD File Formats Manual | PROCFS(5) |
名称
procfs — プロセスファイルシステム書式
proc /proc procfs rw 0 0
解説
プロセスファイルシステム、すなわち procfs は、ファイルシステムの内側のシステムプロセステーブルを見ることを実装しています。それは、通常、 /proc にマウントされ、 ps(1) と w(1) のようなプログラムの完全な操作のために必要とされます。procfs は、以前の FreeBSD 1.1 procfs 実装と異なり、プロセス空間の 2 つのレベルの見え方を提供しています。最高のレベルでは、プロセスそれ自体は、先導する 0 なしで 10 進数のそれらのプロセス ID によって指定されます。また、検索要求を行うプロセスを常に参照する、 curproc と呼ばれる特別のノードがあります。
各ノードは、次のエントリを含んでいるディレクトリです:
各ディレクトリは、次のいくつかのファイルを含んでいます:
- ctl
-
様々な制御操作をサポートする書き込み専用のファイル。制御コマンドは、文字列として
ctl ファイルに書き込まれます。制御コマンドは、次の通りです:
- attach
- 対象プロセスを停止し、送信プロセスに対してデバッグ制御プロセスとなるよう手配する。
- detach
- 対象プロセスの実行を継続し、デバッグプロセスの制御下から離します (送信プロセスである必要はありません)。
- run
- シグナルが届くか、ブレークポイントに達するか、または対象プロセスが終了するまで対象プロセスを継続して動作させます。
- step
- シグナルを届けずに対象プロセスをシングルステップさせます。
- wait
- 対象プロセスがデバッグに適した平衡状態になるまで待ちます。対象プロセスは他のどのコマンドが許可されるよりも前にこの状態になる必要があります。
文字列は、 SIG 接頭辞なしの小文字のシグナル名でも構いません。この場合、指定したシグナルがプロセスに届けられます。 ( sigaction(2) 参照)。
procctl(8) ユーティリティは、スタックプロセスのトレースポイントをクリアするために使用することができます。
- dbregs
- < machine/reg.h> 中の struct dbregs で定義されるデバッグレジスタ。現在 dbregs は、i386 アーキテクチャでのみ実装されています。
- etype
- file 項目によって参照される実行形式のタイプ。
- file
-
プロセステキストが読まれる file へのシンボリックリンク。これはプロセスのシンボルテーブルへのアクセスを得る、またはプロセスのもう 1 つのコピーを始めるために使われます。ファイルが見つからなかった場合、そのリンクターゲットは‘
unknown
’です。 - fpregs
- < machine/reg.h> 中の struct fpregs で定義される浮動小数点レジスタ。 fpregs は、汎用レジスタセットと浮動小数点レジスタセットが明確に区別されたマシンにのみ実装されています。
- map
- プロセスの仮想メモリのマップ。
- mem
- プロセスの完全な仮想メモリイメージ。プロセス中に存在するアドレスのみがアクセスできます。このファイルに対する読み書きはプロセスを修正します。テキストセグメントに対する書き込みはそのプロセスのみに留まります。
- note
- プロセスへシグナルを送るために使われます。実装されていません。
- notepg
- プロセスグループへシグナルを送るために使われます。実装されていません。
- osrel
- プロセスに割り当てられたカーネルの osrel 値の読み込みと書き込みを許可します。値に依存してオンとオフに切り替えられる互換性の shim に影響します。初期プロセス値は、実行形式の ELF イメージの ABI ノートタグから読み込まれ、バイナリフォーマットによってサポートされないか、または、見つからなかったなら 0 です。
- regs
- プロセスのレジスタセットへの読み書き手段を提供します。このファイルは < machine/reg.h> 中で定義されている struct regs バイナリデータ構造体を含んでいます。 regs はプロセスが停止しているときのみ書き込みできます。
- rlimit
- これは、プロセスの現在および最大の制限を含む、読み込み専用ファイルです。各行の書式は rlimit current max であり、-1 は無限を意味します。
- status
-
プロセスの状態。このファイルは読み込みのみで、空白で分けられた以下の多数のフィールドを含んだ 1 行を返します:
- コマンド名
- プロセス ID
- 親プロセス ID
- プロセスグループ ID
- セッション ID
- 制御端末のデバイス名、または制御端末がないなら、マイナス記号 (“-”)。
- プロセスフラグのリスト: ctty 制御端末がある、 sldr プロセスがセッションリーダである、 noflags 他の 2 つのフラグがセットされていない。
- コンマで区切った秒とマイクロ秒によるプロセス開始時刻
- コンマで区切った秒とマイクロ秒によるユーザ時間
- コンマで区切った秒とマイクロ秒によるシステム時間
- ウェートチャネルメッセージ
- 実効ユーザ ID と全てコンマで区切られたグループリスト(最初の項目は実効グループ ID) から成っているプロセスクリデンシャル
- プロセスが走行する jail のホスト名。‘
-
’の場合、プロセスは jail 中で走行していないことを示します。
対象がデバッガによって 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/osrel
- プロセスの osrel 値。
- /proc/curproc/regs
- プロセスのレジスタのセット。
- /proc/curproc/rlimit
- プロセスの現在と最大の rlimit。
- /proc/curproc/status
- プロセスの現在の状態。
使用例
/proc に procfs ファイルシステムをマウントするためには、次の通りです:
mount -t procfs proc /proc
作者
このマニュアルページは、 によって提供された記述に基づいて によって書かれ、後で によって改良されました。April 22, 2013 | FreeBSD |