ps — 查看进程状态

ps 显示当前运行的进程的快照。

命令说明

ps 报告系统中进程的当前状态。它支持多种选项来显示不同格式和粒度的信息。常用的组合包括 ps aux(BSD 格式)和 ps -ef(System V 格式)。

应用场景

  • 查找进程 PID
  • 检查进程状态
  • 查看进程资源使用
  • 查找僵尸进程
  • 检查进程的启动命令
  • kill 配合管理进程

常用示例

示例 1:查看所有用户的所有进程

bash
复制代码
ps aux
plaintext
复制代码
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0 169564  9488 ?        Ss   Aug01   0:05 /sbin/init
alice   12345  2.3  2.7 4567890 890123 pts/0  Sl   10:30   1:23 /usr/bin/node app.js
bob     23456  0.5  1.4 2345678 456789 pts/1  S    10:15   0:45 python3 script.py

示例 2:显示完整命令行

bash
复制代码
ps -ef
plaintext
复制代码
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Aug01 ?        00:00:05 /sbin/init
alice   12345 12300  2 10:30 pts/0    00:01:23 /usr/bin/node /home/alice/app.js

示例 3:查看特定进程

bash
复制代码
ps -p 12345 -o pid,ppid,cmd,%cpu,%mem

示例 4:按 CPU 使用率排序

bash
复制代码
ps aux --sort=-%cpu | head -10

示例 5:查找进程

bash
复制代码
ps aux | grep nginx

示例 6:树状显示进程关系

bash
复制代码
ps -ejH

示例 7:显示线程

bash
复制代码
ps -eLf | grep java

常用 BSD 格式输出字段

字段 说明
USER 进程所有者
PID 进程 ID
%CPU CPU 使用率
%MEM 内存使用率
VSZ 虚拟内存大小(KB)
RSS 常驻内存大小(KB)
TTY 终端
STAT 进程状态
START 启动时间
TIME 累计 CPU 时间
COMMAND 命令

进程状态代码

状态 说明
R 运行中
S 睡眠(可中断)
D 睡眠(不可中断,通常是 IO)
Z 僵尸进程
T 已停止
s 会话领导
l 多线程
+ 前台进程组
< 高优先级
N 低优先级

help 参数详解(常用组合)

参数 说明
aux 显示所有用户的所有进程(BSD 格式),包含资源使用
-ef 显示所有进程(System V 格式),包含父进程 ID
-e 显示所有进程
-f 完整格式输出
-u USER 显示指定用户的进程
-p PID 显示指定 PID
-C CMD 显示指定命令名的进程
-o FORMAT 自定义输出格式
--sort=KEY 按指定键排序
-H 树状显示
--forest 树状显示进程关系
-L 显示线程
--no-headers 不显示头信息