pstree命令用于直观展示进程父子继承关系,支持默认树形显示、-p显示pid、-u标注用户、-a显示完整命令行、-s追溯父链五种核心用法。

如果您需要直观掌握进程之间的继承关系,例如识别某个服务的子进程链或排查异常派生的进程,则需借助专门展示层级结构的工具。pstree命令正是为此设计,它将进程按父子关系组织为缩进树形视图,避免了ps命令中扁平化输出带来的理解负担。以下是具体操作方式:
一、基础进程树显示
pstree默认仅显示当前用户启动的全部进程,并以缩进形式体现父子层级,根节点通常为systemd或init,便于快速定位会话主进程及其后代。
1、在终端中输入pstree并回车执行。
2、观察输出中各进程的缩进深度,缩进越深表示其父进程层级越高。
3、注意分支末尾带方括号的条目,如[{nginx}],代表该进程创建的线程而非独立进程。
二、显示进程PID编号
为后续执行kill、strace等需精确指定目标的操作,必须获取进程唯一标识符PID。pstree -p会在每个进程名后附加括号标注其PID,使定位更直接。
1、运行命令pstree -p。
2、查找目标进程名称右侧括号内的数字,例如sshd(895)中的895即为其PID。
3、可结合grep筛选特定PID段,如pstree -p | grep 895。
三、标注进程所属用户
当系统存在多用户并发运行服务时,仅看进程名无法区分归属。pstree -u在每个进程名后追加用户名,有助于识别非root用户启动的守护进程或临时作业。
1、执行pstree -u命令。
2、检查输出中进程名后是否出现@符号及用户名,例如nginx@www-data。
3、若需聚焦某用户全部进程,可在命令后直接添加用户名:pstree -u www-data。
四、展开完整命令行参数
某些进程行为差异源于启动时传入的不同选项。pstree -a强制显示每个进程的完整启动命令与参数,对分析配置加载路径、调试启动失败尤为关键。
1、键入pstree -a并执行。
2、比对同名进程的参数差异,例如mysqld --defaults-file=/etc/my.cnf与mysqld --skip-networking。
3、确认是否存在异常参数,如--skip-grant-tables可能暗示权限绕过风险。
五、聚焦指定进程及其父链
当已知某一可疑进程PID,需逆向追溯其父进程直至根节点以判断来源时,-s选项可精简输出,仅保留该进程及其所有上级祖先。
1、先通过ps或top获取目标进程PID,例如1023。
2、运行pstree -s 1023。
3、查看输出中从systemd(1)开始逐级向下延伸至目标PID的完整路径。










