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

linux中查看进程状态的命令

进程 状态 查看 命令 42    来源:    2025-04-05

在Linux系统中,查看进程状态的常用命令如下:


1. ps 命令(最基础)

ps aux       # 查看所有用户的所有进程(BSD风格)
ps -ef       # 查看所有进程(标准UNIX风格)
ps -l        # 查看当前终端关联的进程(含详细状态)
ps -o pid,state,cmd -p <PID>  # 查看指定PID的进程状态
  • 关键字段
    STAT列显示进程状态(如 R=运行, S=睡眠, D=不可中断睡眠, Z=僵尸等)。

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

top          # 实时监控进程(按q退出)
htop         # 增强版top(需安装,支持交互操作)
  • 显示内容
    • S列显示进程状态(同ps的状态码)。
    • 可排序、过滤进程。

3. pstree 命令(树状结构)

pstree -p    # 显示进程树(含PID)
  • 用途:直观查看父子进程关系及状态。

4. pgrep 命令(快速查找PID)

pgrep -l <进程名>  # 根据名称查找PID及状态

5. /proc 文件系统(底层信息)

cat /proc/<PID>/status  # 查看指定进程的详细状态
  • 输出示例
    State: R (running)State: S (sleeping)

6. systemctl 命令(系统服务进程)

systemctl status <服务名>  # 查看服务的状态及进程信息

进程状态码说明:

状态码 含义
R Running(运行中)
S Interruptible Sleep(可中断睡眠)
D Uninterruptible Sleep(不可中断睡眠,通常等待I/O)
Z Zombie(僵尸进程,已终止但未回收)
T Stopped(暂停/跟踪状态)
I Idle(内核线程,空闲)

示例:检查Nginx进程状态

ps aux | grep nginx  # 查看Nginx进程及状态
cat /proc/$(pgrep nginx)/status | grep State  # 直接提取状态

根据需求选择命令,简单状态用pstop,详细分析用/procsystemctl