ps aux是bsd风格选项组合,a显示所有用户进程、u以用户友好格式含资源占用字段、x包含无终端进程,覆盖绝大多数排查场景。

最常用也最实用的方式是运行 ps aux,它能一次性列出系统中所有用户的所有进程,包含 PID、CPU 和内存占用、运行状态、启动命令等关键信息。
ps aux 是什么,为什么推荐用它
aux 是 BSD 风格的选项组合:
- a 表示显示所有用户的进程(不只是当前终端登录用户的)
- u 表示以用户友好的格式输出,含 USER、%CPU、%MEM、VSZ、RSS、STAT 等字段
- x 表示也包含没有控制终端的进程(比如后台服务、守护进程)
这三者合起来,覆盖了绝大多数排查场景——既不会漏掉系统级进程,又能看清资源消耗和状态,是日常运维和开发中最可靠的“第一眼快照”。
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
怎么看懂 ps aux 的关键字段
执行后你会看到类似这样的列头:USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
- PID:进程唯一编号,后续 kill、top -p 都靠它定位
- %CPU / %MEM:该进程当前占用的 CPU 和物理内存百分比(注意:这是采样瞬间值,非平均值)
- STAT:进程状态码,常见有 R(运行)、S(休眠)、Z(僵尸)、
- COMMAND:启动该进程的命令,但默认可能被截断;想看完整命令行,可用 ps aux -o pid,comm,args 或直接查 /proc/PID/cmdline
按需筛选和排序的实用技巧
单纯看全量列表容易淹没重点,建议搭配管道和排序:
- 找 CPU 占用最高的前 10 个进程:ps aux --sort=-%cpu | head -11(-号表示降序)
- 找某个程序相关的所有进程:ps aux | grep nginx(注意加空格避免匹配到 grep 自身,也可用 pgrep -f nginx)
- 只看指定用户的进程:ps -u www-data(System V 风格,更简洁)
- 查看某进程的完整启动参数:cat /proc/1234/cmdline | tr '\0' ' '(替换 \0 为空格可读)
别踩这些常见坑
ps 是静态快照工具,不是实时监控器。几个易错点要留心:
- ps aux 和 ps -ef 输出不同,但不冲突:前者侧重资源视图,后者侧重进程关系(含 PPID、TTY),两者可互补使用
- CPU 百分比不准? 因为 ps 统计的是进程自启动以来的总 CPU 时间除以运行时长,短生命周期进程数值可能失真;高负载时建议配合 top 或 pidstat 验证
- 看不到刚启动的进程? 可能是执行太快已退出,或权限受限(如其他用户进程在某些发行版中默认不可见);可尝试加 sudo 或查 /proc 目录确认
- STAT 显示 Z 却 kill 不掉? 僵尸进程本身已终止,只是父进程没回收;真正要处理的是它的父进程,或重启父进程










