ps

111 阅读2分钟

在显示进程的信息时,可以使用ps命令。它可以帮助查找特定的pid(进程id),检查进程正在做什么,并且概述系统中正在发生的每件事情。Linux系统的ps不仅支持UNIX选项和BSD选项,还支持GNU选项。

对于ps选项来说,有一个有趣的传统。UNIX选项通常以连字符(-)开头,而BSD选项前面没有连字符。所以当阅读说明书页时记住:

  • 如果选项前面有连字符(-),那么这个选项是UNIX选项;
  • 如果选项前面没有连字符,那么这个选项是BSD选项。

本文只讨论UNIX选项,UNIX选项的基本语法:
ps [-aefFly] [-p pid] [-u userid]

显示哪些进程:
ps:与你的用户标识和终端相关的进程
ps -a:与任何用户标识和终端相关的进程
ps -e:所有进程(包括守护进程)
ps -p pid:与指定进程ID pid相关的进程
ps -u userid:与指定用户标识userid相关的进程

显示哪些数据列:
ps:PID TTY TIME CMD
ps -f:UID PID PPID C TTY TIME CMD
ps -F:UID PID PPID C SZ RSS STIME TTY TIME CMD
ps -l:F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
ps -ly:S UID PID PPID C PRI NI RSS SZ WCHAN TTY TIME CMD

列的含义:
UID:用户标识
PID:进程id
PPID:父进程的进程id
C:cpu利用率
TTY:控制终端的完整名称
TIME:累计cpu时间
STIME:累计系统时间
CMD:正被执行的命令名称
ADDR:进程表中的虚拟地址
F:与进程相关的标志
NI:nice值,用于设置优先级
PRI:优先级(较大的数字=较低的优先级)
RSS:内存驻留空间大小
S:进程状态代码(D、R、S、T、Z)
SZ:物理页的大小
WCHAN:等待通道

进程状态代码(Linux、FreeBSD):
D:不可中断睡眠:等待事件结束(通常是IO,D=“磁盘”)
R:正在运行或可运行(可运行=正在运行队列中等待)
S:可中断睡眠:等待事件结束
T:挂起:由作业控制信号挂起或者因为追踪而被挂起
Z:僵进程:终止后,父进程没有等待
I:空闲:超过20s的睡眠(仅适用于FreeBSD)