在 Linux 世界里,有一句很真实的话:不会看进程,就不会排故障。无论是服务器卡顿、CPU 飙高,还是服务“看起来还在,其实已经不工作了”,最终都绕不开一个问题:进程现在到底在干什么?而ps,正是Linux下最基础、也是最核心的进程查看工具之一。
今天这篇文章,我们就系统讲清楚:ps 是什么、怎么看、以及如何在真实场景中用它定位问题。一、ps 是什么?
ps 是Process Status的缩写,用于显示当前系统中的进程状态。一句话总结:top 用来看“变化”,ps 用来看“现状”。二、最常见的三种 ps 用法
ps 的参数风格比较“古老”,主要有三种写法,实际工作中最常见的是下面这几种。1. 查看当前终端的进程
通常只能看到当前 shell 相关的进程,用途有限。2. 查看当前用户的所有进程
3. 查看系统所有进程(最常用)
三、读懂 ps aux 的输出
STAT 状态速查
R:运行中
S:睡眠(最常见)
D:不可中断睡眠(可能在等 IO)
Z:僵尸进程
T:暂停
如果你看到大量 D 或 Z,通常意味着系统有问题。四、按条件过滤进程
1. 按进程名查找
2. 查看某个 PID 的详细信息
ps -p 1234 -o pid,ppid,%cpu,%mem,cmd
五、父子进程关系查看
1. 查看进程树
2. 查看某个进程的父进程
ps -o pid,ppid,cmd -p 1234
如果父进程已经退出,而子进程还在,很可能是异常状态。六、常见实战场景
场景一:服务器 CPU 很高
ps aux --sort=-%cpu | head
场景二:内存不够用
ps aux --sort=-%mem | head
场景三:服务启动失败但进程还在
七、ps 与 top 的关系
八、写在最后
如果你刚开始学 Linux,关于 ps 命令,记住下面几条就够了:ps -p PID -o pid,ppid,cmdps 不复杂,但它背后代表的是进程、资源和系统运行状态的基本认知。把 ps 用熟,你离真正理解 Linux,又近了一步。如果这篇文章对你有帮助,欢迎关注、点赞、收藏、转发,我们下篇继续聊 Linux 基础。