tail head cat sleep
QR code linking to this page

manページ  — PROCFS

名称

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 によって手直しされました。

PROCFS (5) December 4, 2001

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

Hang in there, people suffering from natural disasters and deadly diseases - we're putting ribbons on our cars as fast as we can
— Artur Bagyants