procfs

提供: ArchWiki
2023年8月30日 (水) 19:16時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (→‎Content: 一部翻訳)
ナビゲーションに移動 検索に移動

この記事あるいはセクションで使われている用語や表現には問題が存在します。
議論: 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 - カーネルコマンドライン

Processes

Inside /proc/pid is stored information about every process currently running. Below is an example showing some of the PIDs currently running:

$ 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
...

Lets take for example pid 1057 and see what is inside:

$ 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
...

Some of the fields:

  • cmdline - arguments used to start program.
  • cwd - current working directory for the process.
  • environ - environment variables inside the process (zero-delimited).
  • fd/ - directory containing open file descriptors for the process.
  • exe - symbolic link to process executable.
  • maps - memory mapping of the process.
  • mem - virtual memory of the process.

Usage

You can interact with /proc contents as with regular files.

To read from a file:

$ cat /proc/cmdline

To write to a file:

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

See also