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

linux如何查看进程状态

进程 状态 僵尸 查看 201    来源:    2025-04-05

在Linux系统中,查看进程状态主要通过以下几种命令和方式,以下是详细说明:


1. ps 命令(最常用)

ps aux | grep [进程名/关键字]  # 查看特定进程
ps -ef                      # 查看所有进程的完整信息
ps -p [PID] -o stat          # 查看指定进程的状态(如 S/R/Z等)
  • 状态字段解释(STAT列):
    • R (Running):运行中或可运行(在运行队列)
    • S (Sleeping):可中断的睡眠(等待事件)
    • D (Uninterruptible Sleep):不可中断的睡眠(通常与IO相关)
    • Z (Zombie):僵尸进程(已终止但未被父进程回收)
    • T (Stopped):被信号暂停(如 Ctrl+Z
    • <:高优先级进程
    • N:低优先级进程

2. top / htop 命令(实时动态查看)

top          # 实时显示进程状态(按 q 退出)
htop         # 增强版 top(需安装,支持颜色和交互)
  • 显示列说明
    • %CPU%MEM:CPU和内存占用
    • STAT:进程状态(同 ps 的状态码)
    • S/R/D 等状态会动态刷新。

3. pstree 命令(查看进程树)

pstree -p    # 显示进程及其子进程的树状结构
  • 适合观察父子进程关系,僵尸进程可能在此显示为 <defunct>

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

cat /proc/[PID]/status   # 查看某个进程的详细状态
cat /proc/[PID]/stat     # 包含进程状态码(第3字段)
  • 示例bash cat /proc/1234/status | grep State

5. 检查僵尸进程

ps aux | grep 'Z'       # 筛选僵尸进程
  • 处理僵尸进程
    • 找到其父进程(PPID),重启父进程或终止父进程。

6. systemctl(系统服务进程)

systemctl status [服务名]  # 查看系统服务的状态(如 sshd)

关键点总结:

  • 状态码:重点关注 R(运行)、S(睡眠)、Z(僵尸)。
  • 实时监控:用 tophtop
  • 深度分析:结合 /proc/[PID]/ 下的文件。

根据需求选择合适的命令即可快速定位进程状态!