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

linux查看进程状态

进程 状态 查看 PID 340    来源:    2025-04-05

在Linux系统中,查看进程状态有多种命令和方式,以下是常用的方法及说明:


1. 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 (会话领导者)等。

2. top / htop 命令(动态监控)

top        # 实时显示进程状态(按q退出)
htop       # 增强版top(需安装,支持交互式操作)
  • 输出说明
    • S列显示进程状态(同psSTAT)。
    • 可查看CPU、内存占用及实时状态变化。

3. pstree(查看进程树)

pstree -p [PID]  # 显示指定进程的父子关系
  • 适合分析进程的层级结构。

4. /proc 文件系统(直接读取内核信息)

cat /proc/[PID]/status  # 查看详细进程状态(包括State、线程数等)
cat /proc/[PID]/stat    # 原始状态数据(第3字段为状态码)

5. 其他工具

  • 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 [进程]
  • 动态监控:tophtop
  • 详细分析:cat /proc/[PID]/status

根据需要选择合适的方式即可。