我们知道 Linux 一切都是面向文件的,所以我们可以通过文件来获取到正在运行的ELF程序的状态信息。
本文会注解进程状态里面的各项输出参数的作用,以便于人们在写SH脚本程序的时候可以作为一个参照信息表。
当我们知道了进程ID时可以用这个命令来查看进程的状态信息。
cat /proc/进程ID/status
进程状态信息各项描述:
Name: 进程的名称
 Umask: 进程的文件创建掩码
 State: 进程的状态,比如运行(R)、睡眠(S)等
 Tgid: 线程组ID
 Ngid: 保留字段
 Pid: 进程ID
 PPid: 父进程ID
 TracerPid: 跟踪进程的进程ID
 Uid: 用户ID
 Gid: 组ID
 FDSize: 进程打开的文件描述符数量
 Groups: 进程所属的附加组
 VmPeak: 进程使用的最大虚拟内存大小
 VmSize: 进程当前的虚拟内存大小
 VmLck: 已锁定的虚拟内存大小
 VmPin: 固定的虚拟内存大小
 VmHWM: 高峰工作集大小
 VmRSS: 实际使用的物理内存大小(常驻集大小)
 RssAnon: 匿名内存大小
 RssFile: 文件页大小
 RssShmem: 共享内存大小
 VmData: 数据段大小
 VmStk: 栈段大小
 VmExe: 可执行代码段大小
 VmLib: 共享库大小
 VmPTE: 页表条目大小
 VmSwap: 交换空间大小
 HugetlbPages: 巨大页面大小
 CoreDumping: 是否正在进行核心转储
 THP_enabled: 是否启用了透明大页面
 Threads: 线程数
 SigQ: 信号队列信息
 SigPnd: 挂起的信号
 ShdPnd: 共享挂起的信号
 SigBlk: 阻塞的信号
 SigIgn: 忽略的信号
 SigCgt: 捕获的信号
 CapInh/CapPrm/CapEff/CapBnd/CapAmb: 进程的能力限制
 NoNewPrivs: 是否禁止创建新特权
 Seccomp: 安全计算模块
 Speculation_Store_Bypass: 存储旁路漏洞状态
 Cpus_allowed/Cpus_allowed_list/Mems_allowed/Mems_allowed_list: CPU和内存掩码
 voluntary_ctxt_switches/nonvoluntary_ctxt_switches: 进程切换上下文次数(自愿/非自愿)
观察 pppd 进程状态信息。(例子)
Name:	pppd
Umask:	0022
State:	S (sleeping)
Tgid:	9262
Ngid:	0
Pid:	9262
PPid:	9261
TracerPid:	0
Uid:	0	0	0	0
Gid:	0	0	0	0
FDSize:	512
Groups:	0 
NStgid:	9262
NSpid:	9262
NSpgid:	9261
NSsid:	8517
VmPeak:	  769144 kB
VmSize:	  768856 kB
VmLck:	       0 kB
VmPin:	       0 kB
VmHWM:	   25488 kB
VmRSS:	   21152 kB
RssAnon:	   10964 kB
RssFile:	   10188 kB
RssShmem:	       0 kB
VmData:	  152504 kB
VmStk:	     132 kB
VmExe:	   12788 kB
VmLib:	    3976 kB
VmPTE:	     324 kB
VmSwap:	       0 kB
HugetlbPages:	       0 kB
CoreDumping:	0
THP_enabled:	1
Threads:	10
SigQ:	0/3429
SigPnd:	0000000000000000
ShdPnd:	0000000000000000
SigBlk:	0000000000000000
SigIgn:	0000000000001001
SigCgt:	00000001c180cefe
CapInh:	0000000000000000
CapPrm:	0000003fffffffff
CapEff:	0000003fffffffff
CapBnd:	0000003fffffffff
CapAmb:	0000000000000000
NoNewPrivs:	0
Seccomp:	0
Speculation_Store_Bypass:	not vulnerable
Cpus_allowed:	f
Cpus_allowed_list:	0-3
Mems_allowed:	00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
Mems_allowed_list:	0
voluntary_ctxt_switches:	910837
nonvoluntary_ctxt_switches:	232