Linux系统ps命令:查看正在运行的进程

IDC服务

Linux系统ps命令:查看正在运行的进程

2025-06-04 00:05


ps 命令是 Linux 系统管理员和开发者最常用的进程查看工具之一,它能提供系统当前运行进程的快照信息。掌握其用法对于监控系统状态、排查问题至关重要。以下是深入解析: ? 一、ps 的核心作用

                                            




ps 命令是 Linux 系统管理员和开发者最常用的进程查看工具之一,它能提供系统当前运行进程的快照信息。掌握其用法对于监控系统状态、排查问题至关重要。以下是深入解析:


🧠 一、ps 的核心作用

  • 实时快照: 显示运行进程在命令执行瞬间的状态(非实时刷新)。
  • 信息全面: 可查看进程 ID (PID)、父进程 ID (PPID)、CPU/内存占用、启动时间、运行终端 (TTY)、用户 (USER)、优先级 (PRI/NI)、命令/参数 (COMMAND/CMD) 等。
  • 精准定位: 快速识别占用资源过高的进程、僵尸进程 (Zombie)、异常进程等。

🔍 二、常用参数组合与场景解析

ps 支持三种语法风格:Unix 风格 (-ef)、BSD 风格 (aux)、GNU 长选项 (--forest)。现代 Linux 发行版通常兼容前两者。

1️⃣ 基础查看:当前终端关联进程

ps
  • 输出: 仅显示与当前终端会话关联的进程(不含守护进程等)。
  • 字段: PID, TTY, TIME, CMD(启动命令名,不含参数)。

2️⃣ 标准全景视图:查看所有用户进程

ps -ef   # Unix 风格 (推荐)
ps aux    # BSD 风格 (常用)
  • -ef 字段详解:
    • UID/USER: 进程所有者
    • PID: 进程 ID
    • PPID: 父进程 ID
    • C: CPU 利用率(过时计算方式)
    • STIME: 启动时间/日期
    • TTY: 控制终端 ( ? 表示无终端,如守护进程)
    • TIME: 累计占用 CPU 时间
    • CMD完整命令行(包含参数)
  • aux 字段详解:
    • USER: 进程所有者
    • PID: 进程 ID
    • %CPU实时 CPU 占用百分比
    • %MEM实时物理内存占用百分比
    • VSZ: 虚拟内存大小 (KiB)
    • RSS: 常驻内存集大小 (KiB)
    • TTY: 控制终端
    • STAT进程状态代码 (关键!👇)
    • START: 启动时间
    • TIME: 累计占用 CPU 时间
    • COMMAND: 完整命令行(包含参数)

⚠️ 重点:STAT 进程状态码解析

代码 含义 说明
R Running / Runnable 正在运行或在运行队列等待
S Interruptible Sleep 休眠中,可被信号唤醒 (等待 I/O 等)
D Uninterruptible Sleep 不可中断休眠 (通常等待磁盘 I/O)
T Stopped 被作业控制信号停止 (如 Ctrl+Z)
t Tracing stop 被调试器跟踪停止
Z Zombie 僵尸进程(已终止但父进程未回收资源) 🧟
X Dead (极少见) 进程已完全死亡
< 高优先级 (Nice 负值)  
N 低优先级 (Nice 正值)  
s 会话领导者 (Session leader)  
l 多线程进程  
L 内存页被锁定  
+ 位于前台进程组  

3️⃣ 层级结构视图:父子进程关系

ps -ef --forest   # Unix 风格
ps auxf           # BSD 风格
  • 作用: 以树状结构显示进程间的父子关系,直观呈现进程树。
  • 场景: 分析服务启动的依赖关系,定位某个进程的根源父进程。

4️⃣ 线程级查看:监控轻量级进程 (LWP)

ps -eLf  # 显示所有线程 (LWP)
ps -T -p <PID> # 查看指定进程的所有线程
  • LWP: 轻量级进程 ID (线程 ID)
  • NLWP: 进程中包含的线程总数
  • 场景: 分析多线程应用的资源使用情况,排查线程阻塞问题。

5️⃣ 自定义输出字段:精准筛选信息

ps -eo pid,user,%cpu,%mem,cmd --sort=-%cpu | head -n 10
  • -eo:自定义输出字段列表 (e 所有进程, o 指定字段)。
  • 常用字段:
    标签:
    • Linux
    • ps
© 蓝易云.