ps:ps 即 process state,可以进程当前状态的快照,默认显示当前终端中的进程,Linux系统各进程的相关 信息均保存在/proc/PID目录下的各文件中。
一、语法
ps [OPTION]...
二、常用选项
a 选项包括所有终端中的进程
x 选项包括不链接终端的进程
u 选项显示进程所有者的信息
f 选项显示进程树,相当于 --forest
k|--sort 属性 对属性排序,属性前加 - 表示倒序
o 属性… 选项显示定制的信息 pid、cmd、%cpu、%mem
L 显示支持的属性列表
-C cmdlist 指定命令,多个命令用,分隔
-L 显示线程
-e 显示所有进程,相当于-A
-f 显示完整格式程序信息
-F 显示更完整格式的进程信息
-H 以进程层级格式显示进程相关信息
-u userlist 指定有效的用户ID或名称
-U userlist 指定真正的用户ID或名称
-g gid或groupname 指定有效的gid或组名称
-G gid或groupname 指定真正的gid或组名称
-p pid 显示指pid的进程
--ppid pid 显示属于pid的子进程
-t ttylist 指定tty,相当于 t
-M 显示SELinux信息,相当于Z
三、ps 输出属性
C : ps -ef 显示列 C 表示cpu利用率
VSZ: Virtual memory SiZe,虚拟内存集,线性内存
RSS: ReSident Size, 常驻内存集
STAT:进程状态
R:running
S: interruptable sleeping
D: uninterruptable sleeping
T: stopped
Z: zombie
+: 前台进程
l: 多线程进程
L:内存分页并带锁
N:低优先级进程
<: 高优先级进程
s: session leader,会话(子进程)发起者
I:Idle kernel thread,CentOS 8 新特性
ni: nice值
pri: priority 优先级
rtprio: 实时优先级
psr: processor CPU编号
四、示例
- 查看指定进程:
ps -p 1234
- 按名称过滤进程:
ps -ef | grep nginx
- 查看内存占用最高的前几名:
ps -eo pid,cmd,%mem --sort=-%mem | head
- 查看所有进程:
ps aux
- 按 CPU 使用排序:
ps aux --sort=-%cpu | head
- 查找僵尸进程:
ps aux | awk '$8 ~ /Z/ { print $0 }'
- 显示指定用户的进程:
ps aux | grep "^username"
五、总结
ps 是一个用于查看和管理系统中运行进程的重要工具,可以说是必备工具。它主要应用于以下场景:
- 查看进程信息:
快速了解当前运行的进程,获取进程的基本信息(如 PID、用户、CPU 和内存使用率)。 - 监控系统资源:
排查高 CPU 或内存使用的进程,辅助性能调优和问题诊断。 - 管理进程:
查找需要操作的特定进程,结合其他命令(如 kill)对进程进行管理。 - 调试和排错:
检查僵尸进程、后台服务状态,定位异常进程或失控程序。 - 定制化显示:
按需过滤或排序进程信息,适配各种系统管理需求。
核心理念:
ps 是静态的,只显示命令运行瞬间的快照。如果需要动态监控进程,结合 top 或 htop 使用。