在Linux系统中,查看进程状态信息有多种方法,以下是常用的命令和工具:
ps 命令(最基础)ps aux # 查看所有用户的所有进程(BSD风格)
ps -ef # 查看所有进程(标准UNIX风格)
ps -l # 查看当前终端关联的进程(带详细状态)
ps -p <PID> -o pid,state,cmd # 查看特定进程的状态(如Running/Sleeping等)
STAT(进程状态代码):R:运行中(Running)S:可中断睡眠(Sleeping)D:不可中断睡眠(通常与I/O相关)Z:僵尸进程(Zombie)T:暂停(Stopped)<:高优先级进程N:低优先级进程top / htop(实时动态监控)top # 动态查看进程状态(按q退出)
htop # 更友好的交互式工具(需安装)
top中按 t 或 m 切换显示模式,按 1 查看每个CPU核心的负载。htop 支持颜色高亮和鼠标操作。pstree(树状结构显示)pstree -p # 显示进程树(包含PID)
pgrep / pidof(快速查找进程PID)pgrep -l nginx # 查找nginx进程的PID和名称
pidof sshd # 直接输出sshd的PID
/proc 文件系统(底层信息)cat /proc/<PID>/status # 查看某个进程的详细状态(包括线程、内存等)
cat /proc/<PID>/stat # 原始状态数据(需解析)
bash
cat /proc/1/status | grep State # 查看PID=1的进程状态systemctl(系统服务进程)systemctl status <service> # 查看系统服务的状态(如nginx)
strace(跟踪进程系统调用)strace -p <PID> # 实时跟踪进程的系统调用(调试用)
STAT为Z的进程,需检查其父进程是否正常退出。top排序(top中按P或M)定位问题进程。根据需求选择合适的工具:快速检查用ps或pgrep,实时监控用top/htop,深入分析用/proc或strace。