在Linux系统中,查看进程状态的常用命令如下:
ps 命令(最基础)ps aux # 查看所有用户的所有进程(BSD风格)
ps -ef # 查看所有进程(标准UNIX风格)
ps -l # 查看当前终端关联的进程(含详细状态)
ps -o pid,state,cmd -p <PID> # 查看指定PID的进程状态
STAT列显示进程状态(如 R=运行, S=睡眠, D=不可中断睡眠, Z=僵尸等)。top / htop 命令(实时动态)top # 实时监控进程(按q退出)
htop # 增强版top(需安装,支持交互操作)
S列显示进程状态(同ps的状态码)。pstree 命令(树状结构)pstree -p # 显示进程树(含PID)
pgrep 命令(快速查找PID)pgrep -l <进程名> # 根据名称查找PID及状态
/proc 文件系统(底层信息)cat /proc/<PID>/status # 查看指定进程的详细状态
State: R (running) 或 State: S (sleeping)。systemctl 命令(系统服务进程)systemctl status <服务名> # 查看服务的状态及进程信息
| 状态码 | 含义 |
|---|---|
R |
Running(运行中) |
S |
Interruptible Sleep(可中断睡眠) |
D |
Uninterruptible Sleep(不可中断睡眠,通常等待I/O) |
Z |
Zombie(僵尸进程,已终止但未回收) |
T |
Stopped(暂停/跟踪状态) |
I |
Idle(内核线程,空闲) |
ps aux | grep nginx # 查看Nginx进程及状态
cat /proc/$(pgrep nginx)/status | grep State # 直接提取状态
根据需求选择命令,简单状态用ps或top,详细分析用/proc或systemctl。