在Linux系统中,进程的状态通常分为以下几种(具体名称可能因内核版本或工具不同略有差异):
Running或Runnable)
ps 或 top 命令时状态显示为 R。Sleeping)
ps/top 中显示为 S。Disk Sleep)
kill -9)。ps/top 中显示为 D。Stopped)
SIGSTOP、SIGTSTP)暂停,或正在被调试(如gdb)。SIGCONT 信号恢复运行。ps/top 中显示为 T。Zombie)
wait() 系列系统调用)。ps/top 中显示为 Z。Traced)
strace、gdb)跟踪时暂停。ps 中可能显示为 t。ps/top 的输出中。Idle)
ps 命令bash
ps aux | grep <进程名> # 查看STAT列(如 R、S、D、Z 等)top 命令bash
top # 查看进程状态(S列)/proc 文件系统bash
cat /proc/<PID>/status | grep State创建 → [Running] ←→ [Interruptible Sleep] ←→ [Uninterruptible Sleep]
↓ ↑ ↑
↓ (exit) ↑ (signal/event) ↑ (I/O完成)
↓ ↑ ↑
[Zombie] ←─── [父进程回收]
wait() 或终止父进程(僵尸会由 init 回收)。kill -CONT <PID> 恢复。理解这些状态对系统监控和故障排查至关重要!