插件窝 干货文章 linux怎么查看进程状态信息

linux怎么查看进程状态信息

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

在Linux系统中,查看进程状态信息有多种方法,以下是常用的命令和工具:


1. ps 命令(最基础)

ps aux           # 查看所有用户的所有进程(BSD风格)
ps -ef           # 查看所有进程(标准UNIX风格)
ps -l            # 查看当前终端关联的进程(带详细状态)
ps -p <PID> -o pid,state,cmd  # 查看特定进程的状态(如Running/Sleeping等)
  • 关键字段说明
    • STAT(进程状态代码):
    • R:运行中(Running)
    • S:可中断睡眠(Sleeping)
    • D:不可中断睡眠(通常与I/O相关)
    • Z:僵尸进程(Zombie)
    • T:暂停(Stopped)
    • <:高优先级进程
    • N:低优先级进程

2. top / htop(实时动态监控)

top              # 动态查看进程状态(按q退出)
htop             # 更友好的交互式工具(需安装)
  • 功能
    • 实时显示CPU、内存占用及进程状态。
    • top中按 tm 切换显示模式,按 1 查看每个CPU核心的负载。
    • htop 支持颜色高亮和鼠标操作。

3. pstree(树状结构显示)

pstree -p        # 显示进程树(包含PID)
  • 用途:直观查看父子进程关系,适合分析多进程应用。

4. pgrep / pidof(快速查找进程PID)

pgrep -l nginx   # 查找nginx进程的PID和名称
pidof sshd       # 直接输出sshd的PID

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

cat /proc/<PID>/status  # 查看某个进程的详细状态(包括线程、内存等)
cat /proc/<PID>/stat    # 原始状态数据(需解析)
  • 示例bash cat /proc/1/status | grep State # 查看PID=1的进程状态

6. systemctl(系统服务进程)

systemctl status <service>  # 查看系统服务的状态(如nginx)

7. strace(跟踪进程系统调用)

strace -p <PID>   # 实时跟踪进程的系统调用(调试用)

常见问题处理

  • 僵尸进程:若发现STATZ的进程,需检查其父进程是否正常退出。
  • 高CPU/内存占用:通过top排序(top中按PM)定位问题进程。

根据需求选择合适的工具:快速检查用pspgrep,实时监控用top/htop,深入分析用/procstrace