linux深入proc文件系统之pid目录(上)

在Linux上,proc是一个伪文件系统,提供了访问内核数据的方法, 一般挂载在/proc目录,其中大部分是只读的。

下面是一些/proc重要的文件

pid目录

/proc/[pid]目录,pid为进程的数字ID,每个运行着的进程都有这么一个目录。

cmdline文件

/proc/[pid]/cmdline是一个只读文件,包含进程完整的命令行信息。如果这个进程是zombie进程,则这个文件没有任何内容。

  1. > cat /proc/1751/cmdline
  2. java -jar rumenz.jar

这是一个JAVA进程。

comm文件

  1. > cat /proc/1751/comm
  2. java

cwd目录

/proc/[pid]/cwd是进程当前工作目录的符号链接

  1. > ls -al /proc/1751/cwd
  2. drwxr-xr-x 2 root root 21 Jan 13 14:33 app
  3. -rw-r--r-- 1 root root 69783738 Mar 12 14:25 rumenz.jar
  4. drwxr-xr-x 4 root root 176 Mar 15 15:43 web
  5. drwxr-xr-x 3 root root 57 Mar 12 13:26 web-test

environ文件

/proc/[pid]/environ里面是进程的环境变量

  1. strings /proc/1751/environ
  2. TOMCAT_HOME=/opt/apache-tomcat-8.5.50
  3. XDG_SESSION_ID=17932
  4. HOSTNAME=JD
  5. TERM=xterm-256color
  6. SHELL=/bin/bash
  7. HISTSIZE=1000
  8. SSH_CLIENT=27.17.144.118 4314 22
  9. OLDPWD=/opt
  10. SSH_TTY=/dev/pts/1
  11. JAVA_OPTS=-server -Xms4096m -Xmx4096m -XX:PermSize=256M -XX:MaxNewSize=512m -XX:MaxPermSize=512m
  12. JRE_HOME=/opt/java/jdk1.8.0_231/jre
  13. USER=root

exe文件

/proc/[pid]/exe为实际运行程序的符号链接

  1. > ls -al /proc/1751/exe
  2. lrwxrwxrwx 1 root root 0 Jul 13 23:07 /proc/1751/exe -> /opt/java/jdk1.8.0_231/bin/java

fd文件

/proc/1751/fd包含当前进程打开文件

  1. > ls -al /proc/1751/fd
  2. dr-x------ 2 root root 0 Jul 12 21:12 .
  3. dr-xr-xr-x 9 root root 0 Jul 11 21:13 ..
  4. l-wx------ 1 root root 64 Jul 13 23:02 0 -> /dev/null
  5. l-wx------ 1 root root 64 Jul 13 23:02 1 -> /opt/Bts/nohup.out
  6. lr-x------ 1 root root 64 Jul 13 23:02 10 -> /dev/urandom
  7. lr-x------ 1 root root 64 Jul 13 23:02 11 -> /dev/random
  8. lr-x------ 1 root root 64 Jul 13 23:02 12 -> /dev/random
  9. lr-x------ 1 root root 64 Jul 13 23:02 13 -> /dev/urandom
  10. lr-x------ 1 root root 64 Jul 13 23:02 14 -> /dev/urandom
  11. lrwx------ 1 root root 64 Jul 13 23:02 15 -> socket:[499343100]

目录中的每一项都是一个符号链接,指向打开的文件,数字则代表文件描述符。

limits

/proc/[pid]/limits显示当前进程的资源限制。

  1. > cat /proc/1751/limits
  2. Limit Soft Limit Hard Limit Units
  3. Max cpu time unlimited unlimited seconds
  4. Max file size unlimited unlimited bytes
  5. Max data size unlimited unlimited bytes
  6. Max stack size 8388608 unlimited bytes
  7. Max core file size 0 unlimited bytes
  8. Max resident set unlimited unlimited bytes

返回笔记列表
入门小站