在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
。