一、命令简介
pstree(Process Tree)是Linux系统中用于以树状结构显示进程层次关系的命令。它能够直观地展示进程之间的父子关系,比传统的ps命令更便于理解进程的派生结构。
二、基本语法
pstree [选项] [进程ID|用户名]
如果不指定进程ID或用户名,默认以系统启动时的第一个进程(通常是init或systemd)为根节点显示所有进程。
三、常用选项详解
| 选项 | 功能说明 |
|---|---|
-a | 显示每个进程的完整命令行及参数 |
-c | 不使用精简标示法,遇到重复进程名时分别列出 |
-h | 高亮显示当前正在执行的程序 |
-H <PID> | 高亮显示指定PID的进程及其祖先进程 |
-l | 采用长列格式显示,不截断过长的行 |
-n | 按进程PID排序,而不是按进程名称排序 |
-p | 显示进程的PID(进程识别码) |
-u | 显示进程所属的用户名称 |
-G | 使用VT100终端机的列绘图字符 |
-U | 使用UTF-8列绘图字符 |
-V | 显示版本信息 |
四、安装方法
pstree命令通常包含在procps-ng或psmisc软件包中: Debian/Ubuntu系统:
sudo apt update
sudo apt install procps-ng
# 或
sudo apt install psmisc
CentOS/RHEL系统:
# CentOS 7及更早版本
sudo yum install procps-ng
# CentOS 8/RHEL 8及以上版本
sudo dnf install procps-ng
Arch Linux系统:
sudo pacman -S psmisc
五、使用示例
1. 基本使用
pstree
显示系统所有进程的树状结构,以init或systemd为根节点。
2. 显示进程PID
pstree -p
在每个进程名称后显示其PID,便于进程管理。
3. 显示完整命令行
pstree -a
显示每个进程的完整命令路径和参数。
4. 显示指定用户的进程
pstree username
仅显示指定用户拥有的进程。
5. 显示指定进程的子树
pstree -p 1234
以PID为1234的进程为根节点,显示其子进程树。
6. 同时显示用户信息
pstree -u
在进程树中同时显示进程所属的用户名称。
7. 高亮显示当前进程
pstree -h
高亮显示当前正在执行的进程及其所有祖先进程。
六、应用场景
- 进程关系分析:快速查看某个进程的父进程链和子进程树
- 系统调试:分析守护进程及其子进程的运行状态
- 资源监控:结合其他工具(如top)监控系统进程结构
- 多进程应用调试:查看多进程应用的进程派生关系
七、注意事项
- 默认情况下,相同名称的进程会使用
*号进行压缩显示,使用-c选项可以禁用此功能 - 使用
-l选项可以避免长行被截断,提高可读性 - pstree命令适合静态分析进程关系,而htop等工具更适合交互式进程管理