procfs

提供: ArchWiki
ナビゲーションに移動 検索に移動

この記事あるいはセクションで使われている用語や表現には問題が存在します。
議論: Use Template:ic. (議論: トーク:Procfs#)

proc ファイルシステム、または procfs は擬似ファイルシステムで、通常 /proc にマウントされ、実行中のシステムに関する情報を含んでいます。

  • プロセス、最も顕著な使用例。
  • カーネル情報および パラメータ
  • システムメトリクス、たとえば CPU 使用率。

内容

カーネルおよびシステム情報

/proc の下には、システムやカーネルに関する多くの情報を提供する多くのファイルがあります。ここで全部を網羅することはできませんが、それらの一部を以下に、それらが何かについての簡単な情報とともにリストしています。

  • /proc/cpuinfo - CPUに関する情報
  • /proc/meminfo - 物理メモリに関する情報
  • /proc/vmstats - 仮想メモリに関する情報
  • /proc/mounts - mount に関する情報
  • /proc/filesystems - カーネルにコンパイルされ、現在のカーネルモジュールがロードされたファイルシステムに関する情報
  • /proc/uptime - 現在のシステム稼働時間
  • /proc/cmdline - カーネルコマンドライン

プロセス

/proc/pid には、現在実行中のすべてのプロセスに関する情報が保存されています。 以下は、現在実行中のいくつかの PID を示した例です:

$ ls -l /proc
total 0
dr-xr-xr-x  9 root    root                  0 Sep  8 18:17 1
dr-xr-xr-x  9 root    root                  0 Sep  9 03:02 10
dr-xr-xr-x  9 daemonx daemonx               0 Sep  9 03:02 1057
dr-xr-xr-x  9 daemonx daemonx               0 Sep  8 18:18 1077
dr-xr-xr-x  9 daemonx daemonx               0 Sep  9 03:02 1087
dr-xr-xr-x  9 root    root                  0 Sep  9 03:02 11
dr-xr-xr-x  9 daemonx daemonx               0 Sep  9 03:02 1103
dr-xr-xr-x  9 daemonx daemonx               0 Sep  9 03:02 1107
dr-xr-xr-x  9 daemonx daemonx               0 Sep  9 03:02 1159
dr-xr-xr-x  9 root    root                  0 Sep  9 03:02 12
dr-xr-xr-x  9 root    root                  0 Sep  9 03:02 124
dr-xr-xr-x  9 root    root                  0 Sep  9 03:02 125
dr-xr-xr-x  9 root    root                  0 Sep  9 03:02 127
dr-xr-xr-x  9 root    root                  0 Sep  9 03:02 128
...

例として pid 1057 の中身を見てみましょう。

$ ls -l /proc/1057
total 0
dr-xr-xr-x 2 daemonx daemonx 0 Sep  9 03:12 attr
-rw-r--r-- 1 daemonx daemonx 0 Sep  9 03:12 autogroup
-r-------- 1 daemonx daemonx 0 Sep  9 03:12 auxv
-r--r--r-- 1 daemonx daemonx 0 Sep  9 03:12 cgroup
--w------- 1 daemonx daemonx 0 Sep  9 03:12 clear_refs
-r--r--r-- 1 daemonx daemonx 0 Sep  9 03:12 cmdline
-rw-r--r-- 1 daemonx daemonx 0 Sep  9 03:12 comm
-rw-r--r-- 1 daemonx daemonx 0 Sep  9 03:12 coredump_filter
-r--r--r-- 1 daemonx daemonx 0 Sep  9 03:12 cpuset
lrwxrwxrwx 1 daemonx daemonx 0 Sep  9 03:12 cwd -> /home/daemonx
-r-------- 1 daemonx daemonx 0 Sep  9 03:12 environ
lrwxrwxrwx 1 daemonx daemonx 0 Sep  9 03:12 exe -> /usr/lib/gvfsd-metadata
dr-x------ 2 daemonx daemonx 0 Sep  9 03:12 fd
dr-x------ 2 daemonx daemonx 0 Sep  9 03:12 fdinfo
-rw-r--r-- 1 daemonx daemonx 0 Sep  9 03:12 gid_map
-r-------- 1 daemonx daemonx 0 Sep  9 03:12 io
-r--r--r-- 1 daemonx daemonx 0 Sep  9 03:12 latency
-r--r--r-- 1 daemonx daemonx 0 Sep  9 03:12 limits
-rw-r--r-- 1 daemonx daemonx 0 Sep  9 03:12 loginuid
dr-x------ 2 daemonx daemonx 0 Sep  9 03:12 map_files
-r--r--r-- 1 daemonx daemonx 0 Sep  9 03:12 maps
-rw------- 1 daemonx daemonx 0 Sep  9 03:12 mem
...

いくつかのフィールド:

  • cmdline - プログラムを開始するために使用された引数。
  • cwd - プロセスの現在の作業ディレクトリ。
  • environ - プロセス内の環境変数(ゼロ区切り)。
  • fd/ - プロセスのオープンファイルディスクリプタを含むディレクトリ。
  • exe - プロセスの実行可能ファイルへのシンボリックリンク。
  • maps - プロセスのメモリマッピング。
  • mem - プロセスの仮想メモリ。

使用方法

/proc の内容は通常のファイルと同様に操作できます。

ファイルから読み取るには:

$ cat /proc/cmdline

ファイルに書き込むには:

# echo 1 > /proc/sys/kernel/sysrq

参照