Show Table of Contents
E.3. /proc/ 内のディレクトリ
カーネルに関する情報の共通グループは、
/proc/
ディレクトリ内のディレクトリ及びサブディレクトリにグループ化されます。
E.3.1. プロセスディレクトリ
各
/proc/
ディレクトリには、数値名が付いた数多くのディレクトリが格納されています。この一覧は以下のような内容です:
dr-xr-xr-x 3 root root 0 Feb 13 01:28 1 dr-xr-xr-x 3 root root 0 Feb 13 01:28 1010 dr-xr-xr-x 3 xfs xfs 0 Feb 13 01:28 1087 dr-xr-xr-x 3 daemon daemon 0 Feb 13 01:28 1123 dr-xr-xr-x 3 root root 0 Feb 13 01:28 11307 dr-xr-xr-x 3 apache apache 0 Feb 13 01:28 13660 dr-xr-xr-x 3 rpc rpc 0 Feb 13 01:28 637 dr-xr-xr-x 3 rpcuser rpcuser 0 Feb 13 01:28 666
これらのディレクトリは、プログラムのプロセス ID にちなんで名付けられ、そのプロセス固有の情報が含まれているため、プロセスディレクトリ と呼ばれています。各プロセスディレクトリのオーナーとグループは、そのプロセスを実行しているユーザーに設定されます。プロセスが終了すると、そのプロセスの
/proc/
プロセスディレクトリはなくなります。
各プロセスディレクトリには以下のファイルが格納されています:
cmdline
— プロセスを起動した際に発行されたコマンドが格納されています。cwd
— そのプロセスの現在の作業ディレクトリへのシンボリックリンク。environ
— そのプロセスの環境変数の一覧。環境変数はすべて大文字で、値は小文字で記載されます。exe
— そのプロセスの実行可能ファイルへのシンボリックリンク。fd
— 特定のプロセスの全ファイル記述子を格納するディレクトリ。これらは、番号付きリンクの形式で表示されます:total 0 lrwx------ 1 root root 64 May 8 11:31 0 -> /dev/null lrwx------ 1 root root 64 May 8 11:31 1 -> /dev/null lrwx------ 1 root root 64 May 8 11:31 2 -> /dev/null lrwx------ 1 root root 64 May 8 11:31 3 -> /dev/ptmx lrwx------ 1 root root 64 May 8 11:31 4 -> socket:[7774817] lrwx------ 1 root root 64 May 8 11:31 5 -> /dev/ptmx lrwx------ 1 root root 64 May 8 11:31 6 -> socket:[7774829] lrwx------ 1 root root 64 May 8 11:31 7 -> /dev/ptmx
maps
— そのプロセスに関連した様々な実行可能ファイル及びライブラリファイルへのメモリマップの一覧。このファイルは、プロセスの複雑度によっては、かなり長くなる場合があります。sshd
プロセスからの出力例は以下のような内容で始まります:08048000-08086000 r-xp 00000000 03:03 391479 /usr/sbin/sshd 08086000-08088000 rw-p 0003e000 03:03 391479 /usr/sbin/sshd 08088000-08095000 rwxp 00000000 00:00 0 40000000-40013000 r-xp 0000000 03:03 293205 /lib/ld-2.2.5.so 40013000-40014000 rw-p 00013000 03:03 293205 /lib/ld-2.2.5.so 40031000-40038000 r-xp 00000000 03:03 293282 /lib/libpam.so.0.75 40038000-40039000 rw-p 00006000 03:03 293282 /lib/libpam.so.0.75 40039000-4003a000 rw-p 00000000 00:00 0 4003a000-4003c000 r-xp 00000000 03:03 293218 /lib/libdl-2.2.5.so 4003c000-4003d000 rw-p 00001000 03:03 293218 /lib/libdl-2.2.5.so
mem
— プロセスによって確保されているメモリ。このファイルは、ユーザーには読み取れません。root
— そのプロセスの root ディレクトリへのリンク。stat
— プロセスの状態。statm
— プロセスが使用中のメモリの状態。/proc/statm
ファイルのサンプルは以下のようになります:263 210 210 5 0 205 0
7 つのカラムは、そのプロセスの異なるメモリ統計に関連しています。これらのカラムは、左から右の順に、以下のような使用メモリに関する情報をレポートしています:- プログラムの合計サイズ (キロバイト単位)
- メモリポーションのサイズ (キロバイト単位)
- 共有されているページ数
- コードのページ数
- データ/スタックのページ数
- ライブラリページの数
- ダーティページの数
status
—stat
やstatm
よりも読みやすい形式で記載されたプロセスの状態。sshd
の出力例は以下の通りです:Name: sshd State: S (sleeping) Tgid: 797 Pid: 797 PPid: 1 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 32 Groups: VmSize: 3072 kB VmLck: 0 kB VmRSS: 840 kB VmData: 104 kB VmStk: 12 kB VmExe: 300 kB VmLib: 2528 kB SigPnd: 0000000000000000 SigBlk: 0000000000000000 SigIgn: 8000000000001000 SigCgt: 0000000000014005 CapInh: 0000000000000000 CapPrm: 00000000fffffeff CapEff: 00000000fffffeff
この出力に記載されている情報には、プロセスの名前と ID、状態 (S (スリープ中)
、R (実行中)
など)、プロセスを実行しているユーザー/グループ ID、メモリの使用状況に関する詳細情報などが含まれます。