下面是一个PROC文件系统的例子,可以看出proc文件系统里面有很多数字,其它的信息相对容易理解,这里不作介绍,本文主要深入分析proc目录下的数字信息。
1 4 9 diskstats iomem meminfo self uptime
10 5 97 driver ioports misc slabinfo version
114 6 buddyinfo execdomains irq mounts stat vmstat
126 7 bus filesystems kcore mtd swaps zoneinfo
128 8 cmdline fs kmsg net sys
2 85 cpuinfo ide loadavg partitions sysvipc
3 88 devices interrupts locks pci tty
你看到的上面列出的那些数字目录代表进程,这些进程在我们对/proc文件系统作快照时正运行在机器上。我们随便看一个进程目录的内容:
# ll 126
total 0
-r--r--r-- 1 root root 0 Jan 1 00:08 cmdline
lrwxrwxrwx 1 root root 0 Jan 1 00:09 cwd -> /proc
-r-------- 1 root root 0 Jan 1 00:09 environ
lrwxrwxrwx 1 root root 0 Jan 1 00:09 exe -> /bin/bash
dr-x------ 2 root root 0 Jan 1 00:00 fd
-r--r--r-- 1 root root 0 Jan 1 00:09 maps
-rw------- 1 root root 0 Jan 1 00:09 mem
-r--r--r-- 1 root root 0 Jan 1 00:00 mounts
-rw-r--r-- 1 root root 0 Jan 1 00:09 oom_adj
-r--r--r-- 1 root root 0 Jan 1 00:09 oom_score
lrwxrwxrwx 1 root root 0 Jan 1 00:09 root -> /
-r--r--r-- 1 root root 0 Jan 1 00:09 smaps
-r--r--r-- 1 root root 0 Jan 1 00:08 stat
-r--r--r-- 1 root root 0 Jan 1 00:09 statm
-r--r--r-- 1 root root 0 Jan 1 00:08 status
dr-xr-xr-x 3 root root 0 Jan 1 00:09 task
看上面输出的第一行。
-r--r--r-- 1 root root 0 Jan 1 00:08 cmdline
"cmdline",这个文件包含整个用来产生进程的命令行。这个文件的内容是命令行参数包括传递来启动进程的所有参数。所有包含在这个文件的信息即命令和各个启动参数,没有任何的格式和任何的空格。
lrwxrwxrwx 1 root root 0 Jan 1 00:09 cwd -> /proc
"cwd",像我们从上面看见的,这是一个符号链接,它指向进程的当前工作目录。
-r-------- 1 root root 0 Jan 1 00:09 environ
"environ"包括在VARIABL=value为这个进程定义的所有的环境变量。正如"cmdline"一样,包含在文件中的命令和各个参数的信息没有任何的格式和空格。
lrwxrwxrwx 1 root root 0 Jan 1 00:09 exe -> /bin/ver
"exe",这是一个符号链接指向启动当前进程的可执行文件。
dr-x------ 2 root root 0 Jan 1 00:00 fd
"fd",这个目录包括被指定进程打开的文件描述符,如果一个进程打开的文件描述符过多,会造成打开文件失败,通过检查这个目录可以查找打开文件失败的原因。
-r--r--r-- 1 root root 0 Jan 1 00:09 maps
"maps", 当你打出这个命名管道的内容,你可以看到进程的地址空间部分,当前被映射到一个文件。这个部分,从左到右是:和这个映射有关的地址空间,和这个映射有关的 权限,距离文件开始(即这个映射开始的地方)的偏移量,这个映射文件所在的设备,文件的inode号,最后是文件名本身。
"root",这是一个符号链接指向这个进程的/proc目录。
-r--r--r-- 1 root root 0 Jan 1 00:08 status
"status",这个文件给你有关进程名的信息,它的当前的状态,睡眠或者清醒,它的PID,UID,PPID和大量其它基本信息。这个信息可以在一个更简单和结构化的语法中看到,通过使用工具如"ps"和"top"。