在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 nginxpgrep:
bash
pgrep -l <进程名> # 快速查找进程PID和名称ps aux | grep <关键字>top 或 htopcat /proc/<PID>/statusps aux | grep 'Z'根据需求选择合适的命令即可!