ps 命令
当程序运行在系统上时,我们称之为进程(process)。监控进程我们可以使用 ps
命令,它能输出运行在系统上的所有程序的许多信息。
默认情况下,ps
命令只会显示运行在当前控制台下的属于当前用户的进程。
由于
ps
命令曾经有两个版本,因此有多个命令行参数集(控制输出什么信息并如何显示),同时也支持三种风格的参数形式(Unix、BSD 以及 GNU 风格),由于实在太多太复杂,所以我们只需要记住我们常用的参数即可。
常用参数列表
参数
说明
风格
-C cmdlist
显示包含在 cmdlist 列表中的进程
Unix 风格
-G grplist
显示 组ID 在 grplist 列表中的进程
Unix 风格
-U userlist
显示 属主的用户ID 在 userlist 列表中的进程
Unix 风格
-p pidlist
显示 PID 在 pidlist 列表中的进程
Unix 风格
-t ttylist
显示 终端ID 在 ttylist 列表中的进程
Unix 风格
-u userlist
显示有效用户ID在 userlist 列表中的进程
Unix 风格
-l
显示长列表
Unix 风格
-e/-A
显示所有进程
Unix 风格
-f
显示完整格式的输出
Unix 风格
e
显示命令使用的环境变量
BSD 风格
m
在进程后显示线程
BSD 风格
--forest
用层级结构显示出进程和父进程之间的关系
GNU 风格
结果解析
这里我们用使用 ps -l
以及 ps l
来打印长列表,同时解析表头参数含义:
列名
含义
F
内核分配给进程的系统标记
S
进程的状态(O 代表正在运行;S 代表休眠;R 代表可运行正等待;Z 代表僵化,进程已结束但父进程不存在;T 代表停止)
UID
启动这些进程的用户
PID
进程的进程 ID
PPID
父进程的进程号(如果该进程是由另一个进程启动的)
C
进程生命周期中的 CPU 利用率
PRI
进程的优先级(数字越大代表优先级越小)
NI
谦让度值用来参与决定优先级
ADDR
进程的内存地址
SZ
假如进程被换出,所需交换空间的大致大小
WCHAN
进程休眠的内核函数的地址
TTY
进程启动时的终端设备
TIME
运行进程需要的累计 CPU 时间
CMD
启动的程序的名称
---
-- BSD 风格参数额外信息 --
VSZ
进程在内存中的大小,以千字节(KB)为单位
RSS
进程在未换出时占用的物理内存
STAT
代表当前进程状态的双字符状态码(第一个字符和 S 列一样,第二个字符进一步说明进程的状态:\< 运行在高优先级上;N 运行在低优先级上;L 有页面锁定在内存中;s 该进程是控制进程;l 该进程是多线程的)
Last updated