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
: 进程 IDPPID
: 父进程 IDC
: 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