
在 Linux 中查看进程树结构,最常用且直观的命令是 ps 和 pstree,两者侧重点不同:ps 更灵活可定制,pstree 专为树形展示设计、更简洁易读。
用 pstree 直观查看进程树
pstree 是专用于显示进程树的命令,自动按父子关系缩进排列,一眼看出服务依赖和会话结构。
- 基础用法:pstree —— 显示当前用户的所有进程树
- 显示所有用户进程:pstree -a(带启动参数)或 pstree -u(标注用户名)
- 显示 PID:pstree -p —— 每个进程后括号内显示 PID,方便定位
- 指定用户:pstree -u nginx —— 查看 nginx 用户启动的进程树
- 过滤关键词:pstree | grep -C 2 ssh —— 结合 grep 快速定位某类进程上下文
用 ps 配合选项生成树状视图
ps 虽非专为树形设计,但通过 -f(forest)或 --forest 选项可模拟树状缩进,适合脚本处理或需要额外字段(如 CPU、内存)时使用。
- 标准树形输出:ps -ef --forest 或 ps auxf
- 只看某个进程及其子进程:ps --ppid 1234 --forest(1234 是父进程 PID)
- 结合筛选:ps auxf | grep -v grep | grep nginx —— 查看 nginx 相关的进程树片段
补充技巧:结合 top/htop 查看动态树
交互式工具也能辅助理解进程层级:
- htop 启动后按 F5(Tree View)切换树状模式,支持鼠标展开/折叠,实时刷新
- top 本身不支持树形,但可先用 ps -eo pid,ppid,comm | sort -k2 手动分析父子关系
小提示:理解 PID 与 PPID 是关键
所有树形命令都依赖进程的 PID(进程 ID)和 PPID(父进程 ID)。可通过 ps -o pid,ppid,comm 查看原始关系,再用 pstree -p 验证逻辑是否一致。系统初始化进程(PID=1,通常是 systemd 或 init)位于树根,其余进程逐级派生。










