/proc简介
/proc非常特殊,因为它也是一个虚拟文件系统。 它有时被称为进程信息伪文件系统。 它不包含“真实”文件,而是包含运行时系统信息(例如系统内存,安装的设备,硬件配置等)。 因此,它可以被视为内核的控制和信息中心。 实际上,相当多的系统实用程序只是调用此目录中的文件。 例如,'lsmod'与'cat /proc/modules相同,而'lspci'是'cat /proc/pci'相同。 通过更改位于此目录中的文件,您甚至可以在系统运行时读取/更改内核参数(sysctl)。 关于这个目录中文件最独特的事实是它们都有一个文件大小为0的事实,除了kcore,mtrr和self。 目录列表类似于以下内容:
[root@localhost ~]# ll /proc total 0 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 1 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 10 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 1019 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 1021 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 1022 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 107 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 11 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 1176 dr-xr-xr-x. 9 postfix postfix 0 Nov 10 16:45 1182 dr-xr-xr-x. 9 postfix postfix 0 Nov 10 16:45 1184 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 12 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 1283 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 1287 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 13 dr-xr-xr-x. 9 root root 0 Nov 10 16:49 1306 dr-xr-xr-x. 9 root root 0 Nov 10 16:49 1307 dr-xr-xr-x. 9 root root 0 Nov 10 16:49 1308 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 14 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 16 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 17 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 18 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 19 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 2 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 20 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 21 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 22 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 23 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 24 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 26 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 28 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 29 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 291 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 292 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 293 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 299 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 3 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 30 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 300 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 303 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 304 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 305 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 306 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 307 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 31 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 310 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 311 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 32 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 324 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 33 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 331 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 34 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 346 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 35 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 351 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 36 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 37 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 38 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 389 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 390 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 400 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 401 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 415 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 416 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 417 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 418 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 419 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 420 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 421 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 422 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 423 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 424 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 425 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 43 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 44 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 45 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 46 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 494 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 5 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 504 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 515 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 529 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 54 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 549 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 56 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 57 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 58 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 59 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 6 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 60 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 613 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 614 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 615 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 617 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 618 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 619 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 620 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 621 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 622 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 623 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 630 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 631 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 632 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 633 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 634 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 635 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 636 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 637 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 659 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 682 dr-xr-xr-x. 9 dbus dbus 0 Nov 10 16:43 685 dr-xr-xr-x. 9 polkitd polkitd 0 Nov 10 16:43 691 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 692 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 695 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 697 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 7 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 705 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 707 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 73 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 74 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 766 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 8 dr-xr-xr-x. 9 root root 0 Nov 10 16:45 826 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 838 dr-xr-xr-x. 9 root root 0 Nov 10 16:43 9 dr-xr-xr-x. 2 root root 0 Nov 10 16:49 acpi -r--r--r--. 1 root root 0 Nov 10 16:49 buddyinfo dr-xr-xr-x. 4 root root 0 Nov 10 16:49 bus -r--r--r--. 1 root root 0 Nov 10 16:49 cgroups -r--r--r--. 1 root root 0 Nov 10 16:49 cmdline -r--r--r--. 1 root root 0 Nov 10 16:49 consoles -r--r--r--. 1 root root 0 Nov 10 16:49 cpuinfo -r--r--r--. 1 root root 0 Nov 10 16:49 crypto -r--r--r--. 1 root root 0 Nov 10 16:49 devices -r--r--r--. 1 root root 0 Nov 10 16:49 diskstats -r--r--r--. 1 root root 0 Nov 10 16:49 dma dr-xr-xr-x. 2 root root 0 Nov 10 16:49 driver -r--r--r--. 1 root root 0 Nov 10 16:49 execdomains -r--r--r--. 1 root root 0 Nov 10 16:49 fb -r--r--r--. 1 root root 0 Nov 10 16:49 filesystems dr-xr-xr-x. 4 root root 0 Nov 10 16:49 fs -r--r--r--. 1 root root 0 Nov 10 16:49 interrupts -r--r--r--. 1 root root 0 Nov 10 16:49 iomem -r--r--r--. 1 root root 0 Nov 10 16:49 ioports dr-xr-xr-x. 55 root root 0 Nov 10 16:49 irq -r--r--r--. 1 root root 0 Nov 10 16:49 kallsyms -r--------. 1 root root 140737486266368 Nov 10 16:49 kcore -r--r--r--. 1 root root 0 Nov 10 16:49 keys -r--r--r--. 1 root root 0 Nov 10 16:49 key-users -r--------. 1 root root 0 Nov 10 16:49 kmsg -r--------. 1 root root 0 Nov 10 16:49 kpagecount -r--------. 1 root root 0 Nov 10 16:49 kpageflags -r--r--r--. 1 root root 0 Nov 10 16:49 loadavg -r--r--r--. 1 root root 0 Nov 10 16:49 locks -r--r--r--. 1 root root 0 Nov 10 16:49 mdstat -r--r--r--. 1 root root 0 Nov 10 16:49 meminfo -r--r--r--. 1 root root 0 Nov 10 16:49 misc -r--r--r--. 1 root root 0 Nov 10 16:49 modules lrwxrwxrwx. 1 root root 11 Nov 10 16:49 mounts -> self/mounts dr-xr-xr-x. 3 root root 0 Nov 10 16:49 mpt -rw-r--r--. 1 root root 0 Nov 10 16:49 mtrr lrwxrwxrwx. 1 root root 8 Nov 10 16:49 net -> self/net -r--r--r--. 1 root root 0 Nov 10 16:49 pagetypeinfo -r--r--r--. 1 root root 0 Nov 10 16:49 partitions -r--r--r--. 1 root root 0 Nov 10 16:49 sched_debug -r--r--r--. 1 root root 0 Nov 10 16:49 schedstat dr-xr-xr-x. 4 root root 0 Nov 10 16:49 scsi lrwxrwxrwx. 1 root root 0 Nov 10 16:42 self -> 1308 -r--------. 1 root root 0 Nov 10 16:49 slabinfo -r--r--r--. 1 root root 0 Nov 10 16:49 softirqs -r--r--r--. 1 root root 0 Nov 10 16:49 stat -r--r--r--. 1 root root 0 Nov 10 16:43 swaps dr-xr-xr-x. 1 root root 0 Nov 10 16:43 sys --w-------. 1 root root 0 Nov 10 16:49 sysrq-trigger dr-xr-xr-x. 2 root root 0 Nov 10 16:49 sysvipc -r--r--r--. 1 root root 0 Nov 10 16:49 timer_list -rw-r--r--. 1 root root 0 Nov 10 16:49 timer_stats dr-xr-xr-x. 4 root root 0 Nov 10 16:49 tty -r--r--r--. 1 root root 0 Nov 10 16:49 uptime -r--r--r--. 1 root root 0 Nov 10 16:49 version -r--------. 1 root root 0 Nov 10 16:49 vmallocinfo -r--r--r--. 1 root root 0 Nov 10 16:49 vmstat -r--r--r--. 1 root root 0 Nov 10 16:49 zoneinfo
查看进程详细信息
显示为数字编号的目录对应于实际进程ID。查看进程表,您可以将进程与关联的进程ID进行匹配。例如,进程表为secure shell server显示以下内容:
[root@localhost ~]# ps ax | grep sshd 1021 ? Ss 0:00 /usr/sbin/sshd -D 1283 ? Ss 0:00 sshd: root@pts/0 1312 pts/0 S+ 0:00 grep --color=auto sshd
通过查看进程目录/proc/1021中的相关文件,可以获取此进程的详细信息。但是进程目录里面很多文件大小都是0,又怎么能查看信息呢?你可以将这些文件想象成观察内核的一扇窗户,对于那些实际上不包含任何数据的文件,它只是作为指向实际进程信息所在位置的指针。 例如,/proc/1021目录中的文件列表类似于以下内容:
[root@localhost ~]# ll /proc/1021 total 0 dr-xr-xr-x. 2 root root 0 Nov 10 16:52 attr -rw-r--r--. 1 root root 0 Nov 10 16:52 autogroup -r--------. 1 root root 0 Nov 10 16:52 auxv -r--r--r--. 1 root root 0 Nov 10 16:43 cgroup --w-------. 1 root root 0 Nov 10 16:52 clear_refs -r--r--r--. 1 root root 0 Nov 10 16:43 cmdline -rw-r--r--. 1 root root 0 Nov 10 16:43 comm -rw-r--r--. 1 root root 0 Nov 10 16:52 coredump_filter -r--r--r--. 1 root root 0 Nov 10 16:52 cpuset lrwxrwxrwx. 1 root root 0 Nov 10 16:52 cwd -> / -r--------. 1 root root 0 Nov 10 16:52 environ lrwxrwxrwx. 1 root root 0 Nov 10 16:43 exe -> /usr/sbin/sshd dr-x------. 2 root root 0 Nov 10 16:43 fd dr-x------. 2 root root 0 Nov 10 16:52 fdinfo -rw-r--r--. 1 root root 0 Nov 10 16:52 gid_map -r--------. 1 root root 0 Nov 10 16:52 io -r--r--r--. 1 root root 0 Nov 10 16:52 limits -rw-r--r--. 1 root root 0 Nov 10 16:43 loginuid dr-x------. 2 root root 0 Nov 10 16:52 map_files -r--r--r--. 1 root root 0 Nov 10 16:52 maps -rw-------. 1 root root 0 Nov 10 16:52 mem -r--r--r--. 1 root root 0 Nov 10 16:52 mountinfo -r--r--r--. 1 root root 0 Nov 10 16:52 mounts -r--------. 1 root root 0 Nov 10 16:52 mountstats dr-xr-xr-x. 5 root root 0 Nov 10 16:52 net dr-x--x--x. 2 root root 0 Nov 10 16:52 ns -r--r--r--. 1 root root 0 Nov 10 16:52 numa_maps -rw-r--r--. 1 root root 0 Nov 10 16:52 oom_adj -r--r--r--. 1 root root 0 Nov 10 16:52 oom_score -rw-r--r--. 1 root root 0 Nov 10 16:43 oom_score_adj -r--r--r--. 1 root root 0 Nov 10 16:52 pagemap -r--------. 1 root root 0 Nov 10 16:52 patch_state -r--r--r--. 1 root root 0 Nov 10 16:52 personality -rw-r--r--. 1 root root 0 Nov 10 16:52 projid_map lrwxrwxrwx. 1 root root 0 Nov 10 16:52 root -> / -rw-r--r--. 1 root root 0 Nov 10 16:52 sched -r--r--r--. 1 root root 0 Nov 10 16:52 schedstat -r--r--r--. 1 root root 0 Nov 10 16:43 sessionid -rw-r--r--. 1 root root 0 Nov 10 16:52 setgroups -r--r--r--. 1 root root 0 Nov 10 16:52 smaps -r--r--r--. 1 root root 0 Nov 10 16:52 stack -r--r--r--. 1 root root 0 Nov 10 16:43 stat -r--r--r--. 1 root root 0 Nov 10 16:52 statm -r--r--r--. 1 root root 0 Nov 10 16:43 status -r--r--r--. 1 root root 0 Nov 10 16:52 syscall dr-xr-xr-x. 3 root root 0 Nov 10 16:52 task -r--r--r--. 1 root root 0 Nov 10 16:52 timers -rw-r--r--. 1 root root 0 Nov 10 16:52 uid_map -r--r--r--. 1 root root 0 Nov 10 16:52 wchan
进程目中部分文件/目录解析
/proc/PID/cmdline
Command line arguments.
/proc/PID/cpu
Current and last cpu in which it was executed.
/proc/PID/cwd
Link to the current working directory.
/proc/PID/environ
Values of environment variables.
/proc/PID/exe
Link to the executable of this process.
/proc/PID/fd
Directory, which contains all file descriptors.
/proc/PID/maps
Memory maps to executables and library files.
/proc/PID/mem
Memory held by this process.
/proc/PID/root
Link to the root directory of this process.
/proc/PID/stat
Process status.
/proc/PID/statm
Process memory status information.
/proc/PID/status
Process status in human readable form.