718  字
  4  分钟 
  Linux /proc 结构 
 /proc 目录结构
/proc├── 1│   ├── cmdline│   ├── cwd -> /│   ├── environ│   ├── exe -> /sbin/init│   ├── fd/│   ├── maps│   ├── mountinfo│   ├── root -> /│   ├── stat│   ├── statm│   ├── status│   └── task/├── 2├── 3├── ...├── self -> 1234      (指向当前进程的目录)├── cpuinfo├── meminfo├── uptime└── version其中,顶层既有数字命名的目录(每个运行中进程的 PID),也有反映系统整体状态的文件或目录(如 cpuinfo、meminfo、uptime 等),以及特殊符号链接 self(指向调用进程自身的 PID 目录)。
单个进程结构
/proc/1234/├── cmdline        # 进程启动时的命令行参数(Command line)├── cwd -> /home/lk/project│                  # 当前工作目录(Current Working Directory,符号链接)├── environ        # 环境变量列表(Environment)├── exe -> /usr/bin/python3│                  # 可执行文件路径(Executable,符号链接)├── fd/            # 打开的文件描述符目录(File Descriptors)│   ├── 0 -> /dev/pts/0│   ├── 1 -> /dev/pts/0│   └── 2 -> /dev/pts/0├── maps           # 内存映射信息(Memory map)├── mountinfo      # 挂载点信息(Mount information)├── root -> /      # 进程的根目录(Root directory,符号链接)├── stat           # 进程详细状态于一行文本(Process status)├── statm          # 内存使用情况(Memory usage)├── status         # 可读性更强的进程状态(Human-readable status)└── task/          # 线程(tasks)子目录    ├── 1234/    └── 1235/      (其他线程的 PID 目录)各文件/子目录
- cmdline 存储进程启动时的完整命令行参数,参数之间以 \0 分隔。
- cwd 指向进程的当前工作目录(符号链接)。
- environ 存放环境变量,每个条目以 KEY=VALUE\0 分隔。
- exe 指向进程正在执行的可执行文件路径(符号链接)。
- fd/ 目录内每个条目对应一个打开的文件描述符,条目名为数字(0=stdin,1=stdout,2=stderr…),内容是符号链接,指向实际打开的文件或设备。
- maps 列出该进程的所有内存映射区域(包括共享库、堆、栈、匿名映射等),每行包含地址范围、权限、偏移、设备号、inode 及映射路径。
- mountinfo 该进程命名空间中挂载点的详细信息,包括挂载源、挂载目标、文件系统类型和挂载选项。
- root 指向进程根目录(符号链接,对容器或 chroot 环境尤为重要)。
- stat 以固定格式输出一个长字符串,包含进程 PID、状态(R/S/D/T/Z)、父 PID、进程组、线程数、CPU 时间、内存使用等多项数值。
- statm 给出进程使用的内存量,以页面数形式列出:总程序大小、驻留大小、共享大小等。
- status 将 stat 中的信息以可读性更强的 “字段:值” 格式展示,并附加 VmRSS、VmSize、Uid、Gid 等。
- task/ 该进程下所有线程(Lightweight process)的目录,每个线程有与主目录类似的结构,可查看线程各自状态。
 Linux /proc 结构 
  https://blog.lpkt.cn/posts/linux-proc-stuct/     
  