在Linux系统中,查看进程状态可以通过多种命令实现,以下是常用的方法和详细说明:
ps
命令(最常用)ps aux | grep <进程名或关键字>
a
:显示所有用户的进程。u
:显示进程的详细状态(如CPU、内存占用)。x
:包括不关联终端的进程(如后台服务)。STAT
列即为进程状态(见下文状态码解释)。bash
ps aux | grep nginx # 查看Nginx相关进程
cat /proc/<PID>/status
bash
cat /proc/1234/status # 查看PID为1234的进程状态
State
:进程状态(如 R (running)
、S (sleeping)
)。top
/ htop
命令(实时动态查看)top # 实时进程监控(按q退出)
htop # 增强版top(需安装:`sudo apt install htop`)
S
列显示进程状态。Shift + M
按内存排序,Shift + P
按CPU排序。pstree
(显示进程树)pstree -p # 显示进程及其子进程的树状结构
状态码 | 含义 |
---|---|
R |
Running(运行中或可运行) |
S |
Sleeping(可中断的睡眠,等待事件完成) |
D |
Uninterruptible Sleep(不可中断的睡眠,通常等待I/O) |
Z |
Zombie(僵尸进程,已终止但未被父进程回收) |
T |
Stopped(进程被信号暂停,如Ctrl+Z ) |
t |
Tracing stop(进程被调试器暂停) |
< |
高优先级进程 |
N |
低优先级进程 |
s |
会话首进程(Session leader) |
l |
多线程进程 |
+ |
前台进程组 |
ps aux | grep 'Z' # 筛选僵尸进程
bash
kill -9 <PPID>
systemctl
(系统服务进程):
bash
systemctl status <服务名> # 如 systemctl status nginx
pgrep
:
bash
pgrep -l <进程名> # 快速查找进程PID和名称
ps aux | grep <关键字>
top
或 htop
cat /proc/<PID>/status
ps aux | grep 'Z'
根据需求选择合适的命令即可!