在Linux系统中,查看进程运行状态的常用命令如下:
ps 命令最基础的进程查看工具,常用组合:
ps aux # 查看所有用户的所有进程(BSD风格)
ps -ef # 查看所有进程(标准UNIX风格)
ps -l # 查看当前终端关联进程的详细信息(含状态)
输出关键列说明:
- STAT(状态码):
- R:运行中(Running)
- S:可中断睡眠(Sleeping)
- D:不可中断睡眠(通常与I/O相关)
- T:停止(Stopped)
- Z:僵尸进程(Zombie)
- <:高优先级进程
- N:低优先级进程
top / htop 命令实时动态查看进程状态和资源占用:
top # 交互式实时监控(按q退出)
htop # 增强版top(需安装,支持颜色和鼠标操作)
交互操作:
- 按 1:显示所有CPU核心负载
- 按 M:按内存排序
- 按 P:按CPU使用率排序
pstree 命令以树形结构显示进程关系:
pstree -p # 显示进程PID
pgrep 命令快速查找进程PID:
pgrep -l nginx # 查找nginx进程及其PID
systemctl(系统服务进程)查看系统服务的状态:
systemctl status nginx # 查看nginx服务状态
/proc 文件系统直接读取进程信息(以PID为例):
cat /proc/1234/status # 查看PID为1234的进程详细状态
| 状态码 | 含义 |
|---|---|
| R | 运行中或可运行(在运行队列) |
| S | 可中断睡眠(等待事件完成) |
| D | 不可中断睡眠(通常为I/O操作) |
| Z | 僵尸进程(已终止但未回收) |
| T | 暂停状态(如被SIGSTOP停止) |
ps aux | grep 'D' # 查找不可中断睡眠的进程
ps -eo pid,stat,cmd | grep -w 'Z' # 查找僵尸进程
通过以上命令,您可以全面掌握Linux进程的运行状态及资源使用情况。