在Linux系统中,查看进程状态有多种命令和方式,以下是常用的方法及说明:
ps 命令(最常用)ps aux | grep [进程名/关键字] # 查看所有进程并过滤
ps -ef | grep [进程名/关键字] # 完整格式列表
ps -p [PID] -o pid,cmd,stat # 查看指定PID的状态(stat列即状态)
STAT列表示进程状态,常见状态:R (Running):运行中/可运行S (Sleeping):休眠(可中断)D (Uninterruptible Sleep):不可中断休眠(通常为IO操作)T (Stopped):已停止(如通过Ctrl+Z)Z (Zombie):僵尸进程(需手动清理)< (高优先级)、N (低优先级)、s (会话领导者)等。top / htop 命令(动态监控)top # 实时显示进程状态(按q退出)
htop # 增强版top(需安装,支持交互式操作)
S列显示进程状态(同ps的STAT)。pstree(查看进程树)pstree -p [PID] # 显示指定进程的父子关系
/proc 文件系统(直接读取内核信息)cat /proc/[PID]/status # 查看详细进程状态(包括State、线程数等)
cat /proc/[PID]/stat # 原始状态数据(第3字段为状态码)
pgrep:快速查找进程PID
bash
pgrep -l [进程名]kill -l:查看所有信号(用于管理进程状态)
bash
kill -l # 列出信号(如SIGTERM=15, SIGKILL=9)Z状态进程,需终止其父进程:
bash
kill -9 [父进程PID]kill -9 [PID]强制终止。ps aux | grep [进程]top 或 htopcat /proc/[PID]/status根据需要选择合适的方式即可。