说明
proc目录下所有以数字
全名的目录,都有一个进程id与该目录名一一对应,如httpd的进程为8293,则可以在/proc/8293目录下找到该进程的相关信息;进程退出后该进程id对应的目录也会消失
- 1、cmdline
- 与/proc/cmdline相似,保存了当前进程的启动命令
- 2、cwd
- 链接符号,指向进程的运行目录
- 3、exe
- 链接符号,指向进程的可执行文件,通过/proc/[id]/exey启动一个该程序的副本
- 4、environ
- 与进程相关的环境变量
~ cat /proc/29941/environ
USER=vincentLOGNAME=vincentHOME=/home/vincentPATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/gamesMAIL=/var/mail/vincentSHELL=/usr/bin/zshSSH_CLIENT=192.168.50.38 63250 33893SSH_CONNECTION=192.168.50.38 63250 192.168.10.33 33893SSH_TTY=/dev/pts/1TERM=xterm-256colorXDG_SESSION_ID=26397XDG_RUNTIME_DIR=/run/user/1000DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/busLANG=en_US.UTF-8LANGUAGE=en_US:en
- 5、fd:包括了进程打开的每个文件的文件描述符(file descriptor),该目录下的文件是指向实际文件的链接符号
可以统计该目录下文件个数统计该进程打开了多少个文件,也可以直接读取文件,就像直接读取文件一样
* 6、limits:保存了进程使用系统资源的限制信息
* 7、task: 该进程所有线程的信息都在该目录下,每个线程的相关信息都保存在该目录下一个由线程号(tid)全名的目录中
➜ 29941 tree -L 2 task
task
└── 29941
├── attr
├── auxv
├── cgroup
├── children
├── clear_refs
├── cmdline
├── comm
├── cpuset
├── cwd -> /proc/29941
├── environ
├── exe -> /bin/zsh
├── fd
├── fdinfo
├── gid_map
├── io
├── limits
├── loginuid
├── maps
├── mem
├── mountinfo
├── mounts
├── net
├── ns
├── numa_maps
├── oom_adj
├── oom_score
├── oom_score_adj
├── pagemap
├── personality
├── projid_map
├── root -> /
├── sched
├── schedstat
├── sessionid
├── setgroups
├── smaps
├── stack
├── stat
├── statm
├── status
├── syscall
├── uid_map
└── wchan
8 directories, 36 files