スポンサーリンク

PROCFS(5) FreeBSD ファイルフォーマットマニュアル PROCFS(5)

名称

procfs − プロセスファイルシステム

書式

proc

/proc

procfs

rw 0 0

解説

プロセスファイルシステム、すなわち 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
プロセステキストが読まれる file へのシンボリックリンク。これはプ ロセスのシンボルテーブルへのアクセスを得る、またはプロセスのもう 1 つのコピーを始めるために使われます。ファイルが見つからなかった 場合、そのリンクターゲットは ‘unknown’ です。

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

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

mem
プロセスの完全な仮想メモリイメージ。プロセス中に存在するアドレス のみがアクセスできます。このファイルに対する読み書きはプロセスを 修正します。テキストセグメントに対する書き込みはそのプロセスのみ に留まります。

note
プロセスへシグナルを送るために使われます。実装されていません。

notepg
プロセスグループへシグナルを送るために使われます。実装されていま せん。

regs
プロセスのレジスタセットへの読み書き手段を提供します。このファイ ルは <machine/reg.h> 中で定義されている struct regs バイナリデー タ構造体を含んでいます。 regs はプロセスが停止しているときのみ書 き込みできます。

rlimit
これは、プロセスの現在および最大の制限を含む、読み取り専用ファイ ルです。各行の書式は rlimit current max であり、-1 は無限を意味し ます。

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

コマンド名
プロセス ID
親プロセス ID
プロセスグループ ID
セッション ID
制御端末の major,minor 、またはもし制御端末がない場合には -1,-1。
プロセスフラグのリスト: 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/regs
プロセスのレジスタセット
/proc/curproc/rlimit
プロセスの現在および最大の rlimit
/proc/curproc/status
プロセスの現在の状態

関連項目

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

作者

このマニュアルページは Jan-Simon Pendry によって提供された記述に基づいて Garrett Wollman によって書かれ、後に Mike Pritchard によって手直しされま した。

FreeBSD 10.0 December 4, 2001 FreeBSD 10.0

スポンサーリンク