插件窝 干货文章 linux查看进程状态的命令

linux查看进程状态的命令

进程 状态 查看 bash 876    来源:    2025-04-05

在 Linux 系统中,查看进程状态主要通过以下命令实现,以下是详细说明和常用示例:


1. ps 命令(最常用)

功能:查看当前进程的快照。
常用组合

ps aux       # 查看所有用户的所有进程(BSD风格)
ps -ef       # 查看所有进程(标准UNIX风格)
ps -o pid,ppid,cmd,%cpu,%mem,stat   # 自定义输出列(包括进程状态)

输出关键字段: - STAT(进程状态码): - R:运行中(Running) - S:可中断睡眠(Sleeping) - D:不可中断睡眠(通常与IO相关) - T:停止(Stopped) - Z:僵尸进程(Zombie) - <:高优先级进程 - N:低优先级进程 - s:会话领导者(Session leader)


2. top / htop(动态监控)

功能:实时显示进程状态和资源占用。

top          # 默认动态视图(按q退出)
htop         # 增强版(需安装,支持交互式操作)

关键操作: - 按 P 按CPU排序,M 按内存排序。 - 直接显示 STAT 列(状态码同 ps)。


3. pstree(树形结构)

功能:以树状图显示进程父子关系。

pstree -p    # 显示PID和层次结构

4. pgrep / pkill(按名称操作)

pgrep -l nginx  # 查找名为"nginx"的进程及PID
pkill nginx     # 终止名为"nginx"的进程

5. 查看进程详细信息

cat /proc/<PID>/status  # 查看指定进程的详细状态(包括内存、信号等)

示例:

cat /proc/1234/status | grep State  # 提取进程1234的状态

6. systemctl(系统服务进程)

systemctl status nginx  # 查看系统服务的状态(如systemd管理的进程)

常见问题解决

  • 僵尸进程:若发现 STATZ,需找到其父进程并重启。
  • 高CPU进程:用 top 定位后,通过 kill 或调整优先级(renice)处理。

根据需求选择合适的命令组合,如需进一步分析进程资源占用,可结合 vmstatiotop 等工具。