Fangjian

FE / 生活是一种态度

导航
 » 主页
 » 项目
 » Github
 » 关于我

proc详解 [Linux]

10 Jul 2015 » Linux

通常在Linux系统下面我们需要运行:ll /proc/1111

proc文件系统

概念: Linux系统上的/proc目录是一种文件系统

与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。

基于/proc文件系统如上所述的特殊性,其内的文件也常被称作虚拟文件,并具有一些独特的特点。

例如,其中有些文件虽然使用查看命令查看时会返回大量信息,但文件本身的大小却会显示为0字节。此外,这些特殊文件中大多数文件的时间及日期属性通常为当前系统时间和日期,这跟它们随时会被刷新(存储于RAM中)有关。

为了查看及使用上的方便,这些文件通常会按照相关性进行分类存储于不同的目录甚至子目录中,如/proc/scsi目录中存储的就是当前系统上所有SCSI设备的相关信息,/proc/N中存储的则是系统当前正在运行的进程的相关信息,其中N为正在运行的进程(可以想象得到,在某进程结束后其相关目录则会消失)。

大多数虚拟文件可以使用文件查看命令如cat、more或者less进行查看,有些文件信息表述的内容可以一目了然,但也有文件的信息却不怎么具有可读性。不过,这些可读性较差的文件在使用一些命令如apm、free、lspci或top查看时却可以有着不错的表现。


一、进程目录中的常见文件介绍

/proc目录中包含许多以数字命名的子目录,这些数字表示系统当前正在运行进程的进程号,里面包含对应进程相关的多个信息文件。

指令: ll /proc

dr-xr-xr-x   8 root   root        0 Feb 10 15:52 9154
dr-xr-xr-x   8 root   root        0 Mar  9 16:56 9348
dr-xr-xr-x   8 work   work        0 Mar  9 19:34 9367
dr-xr-xr-x   8 work   work        0 Feb 10 15:52 961
dr-xr-xr-x   8 work   work        0 Mar  9 16:56 9654
dr-xr-xr-x   8 work   work        0 Mar  9 16:56 9665
dr-xr-xr-x   8 work   work        0 Mar  9 16:56 9697
dr-xr-xr-x   8 root   root        0 Mar  9 16:56 9717
dr-xr-xr-x   8 work   work        0 Mar  9 16:56 9718
dr-xr-xr-x   8 root   root        0 Feb 10 15:43 9791
dr-xr-xr-x   8 root   root        0 Feb 10 15:43 9805
dr-xr-xr-x   8 root   root        0 Feb 10 23:33 981
dr-xr-xr-x   8 root   root        0 Feb 10 23:33 983
dr-xr-xr-x   8 root   root        0 Feb 10 15:43 9983
dr-xr-xr-x   8 root   root        0 Mar 10 17:21 acpi
-r--r--r--   1 root   root        0 Mar 10 17:21 buddyinfo
dr-xr-xr-x   5 root   root        0 Mar 10 17:21 bus
-r--r--r--   1 root   root        0 Mar 10 17:21 cgroups
-r--r--r--   1 root   root        0 Mar 10 17:21 cmdline
-r--r--r--   1 root   root    16370 Mar 10 17:21 config.gz
-r--r--r--   1 root   root        0 Mar 10 17:21 cpuinfo
-r--r--r--   1 root   root        0 Mar 10 17:21 devices
-r--r--r--   1 root   root        0 Mar 10 17:21 diskstats
-r--r--r--   1 root   root        0 Mar 10 17:21 dma
dr-xr-xr-x   2 root   root        0 Mar 10 17:21 driver
-r--r--r--   1 root   root        0 Mar 10 17:21 execdomains
-r--r--r--   1 root   root        0 Mar 10 17:21 fb
-r--r--r--   1 root   root        0 Mar 10 17:21 filesystems
dr-xr-xr-x   5 root   root        0 Mar 10 17:21 fs

上面列出的是/proc目录中一些进程相关的目录,每个目录中是当程本身相关信息的文件

下面是作者系统( CentOS release 4.3)上运行的一个PID为7773的进程saslauthd的相关文件,其中有些文件是每个进程都会具有的,后文会对这些常见文件做出说明

[root@10.95.105.163 ~]# ll /proc/7773
total 0
dr-xr-xr-x   2 root root 0 Mar 10 17:29 attr
-r--------   1 root root 0 Mar 10 17:29 auxv
-r--r--r--   1 root root 0 Mar 10 17:29 cgroup
--w-------   1 root root 0 Mar 10 17:29 clear_refs
-r--r--r--   1 root root 0 Feb 16 19:39 cmdline
-rw-r--r--   1 root root 0 Mar 10 17:29 coredump_filter
-r--r--r--   1 root root 0 Mar 10 17:29 cpuset
lrwxrwxrwx   1 root root 0 Feb 16 19:39 cwd -> /noah/modules/3188ff1dc979d905a01dd14a7c7b6063/bin
-r--------   1 root root 0 Mar 10 17:29 environ
lrwxrwxrwx   1 root root 0 Feb 16 19:39 exe -> /noah/modules/3188ff1dc979d905a01dd14a7c7b6063/bin/noah-ccs-agent
dr-x------   2 root root 0 Jan 18 18:12 fd
dr-x------   2 root root 0 Mar 10 17:29 fdinfo
-r--------   1 root root 0 Feb 16 19:39 io
-rw-------   1 root root 0 Mar 10 17:29 limits
-rw-r--r--   1 root root 0 Mar 10 17:29 loginuid
-r--r--r--   1 root root 0 Feb 15 16:50 maps
-rw-------   1 root root 0 Mar 10 17:29 mem
-r--r--r--   1 root root 0 Mar 10 17:29 mountinfo
-r--r--r--   1 root root 0 Mar 10 17:29 mounts
-r--------   1 root root 0 Mar 10 17:29 mountstats

二、/proc目录下常见的文件介绍

2.1、/proc/apm

2.2、/proc/buddyinfo

2.3、/proc/cmdline

2.4、/proc/cpuinfo

2.5、/proc/crypto

2.6、/proc/devices

2.7、/proc/diskstats

2.8、/proc/dma

2.9、/proc/execdomains

2.10、/proc/fb

2.11、/proc/filesystems

2.12、/proc/interrupts

2.13、/proc/iomem

2.14、/proc/ioports

2.15、/proc/kallsyms

2.16、/proc/kcore

2.17、/proc/kmsg

2.18、/proc/loadavg

2.19、/proc/locks

2.20、/proc/mdstat

2.21、/proc/meminfo

2.22、/proc/mounts

2.23、/proc/modules

2.24、/proc/partitions

2.25、/proc/pci

2.26、/proc/slabinfo

2.27、/proc/stat

2.28、/proc/swaps

2.29、/proc/uptime

2.30、/proc/version

2.31、/proc/vmstat

2.32、/proc/zoneinfo

三、/proc/sys目录详解

  • 3.1、/proc/sys/debug 子目录

此目录通常是一空目录

  • 3.2、/proc/sys/dev 子目录

为系统上特殊设备提供参数信息文件的目录,其不同设备的信息文件分别存储于不同的子目录中,如大多数系统上都会具有的/proc/sys/dev/cdrom和/proc/sys/dev/raid(如果内核编译时开启了支持raid的功能) 目录,其内存储的通常是系统上cdrom和raid的相关参数信息文件。