最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Linux 中如何通过进程树查看父子进程关系
时间:2026-08-29 11:32:49 编辑:袖梨 来源:一聚教程网
最准的进程树查看命令是 pstree -p。它用缩进和连接符直观展示派生链,如 sshd(790)───bash(1245)───curl(1267),无需手动比对 PID/PPID;查全系统需 sudo pstree -p,加 -u 标用户、-a 显完整命令行;可指定服务名或 PID 快速定位;注意线程(花括号)、合并显示(如 5*[nginx])及父进程退出后被 systemd 接管的情况。
直接用 pstree -p 最准。它用缩进和连接符天然表达派生链,比如 sshd(790)───bash(1245)───curl(1267),一眼就能看出 curl 是 bash 启动的,bash 又挂在 sshd 下。不需要手动比对 PID 和 PPID,也不会跳层漏看。
查全系统进程树要加 sudo
默认 pstree 只显示当前用户启动的进程,nginx、mysql、systemd 服务等根本不会出现——不是命令错了,是权限限制。哪怕你用 sudo systemctl start nginx 启动,worker 进程也不会出现在无权限的输出里。要看到完整树,必须运行:
sudo pstree -p- 加
-u可标出所属用户:sudo pstree -pu - 加
-a显示完整命令行,区分同名但参数不同的进程(如两个 java 进程加载不同 jar)
快速定位目标进程,别扫整棵树
全系统树动辄上百行,靠眼睛找效率低。直接指定目标缩小范围:
- 查服务名:
pstree -p nginx(注意大小写,Nginx不匹配) - 查某 PID 的所有后代:
pstree -p 1234 - 反向追溯祖先链:
pstree -s 1234,输出形如systemd(1)───sshd(790)───bash(1234)
看清线程、合并与断链,避免误判
pstree 默认会隐藏线程、合并同名进程,容易误导:
- 带花括号的条目(如
{gdbus})是线程,不是独立子进程;加-t才显式显示 -
5*[nginx]表示 5 个同名进程,但不等于 5 个独立 fork 出来的 worker;需结合ps -eo pid,ppid,comm验证实际派生关系 - 如果某进程突然挂到
systemd(1)下,大概率是父进程已退出、被 init 接管,此时应立刻补查ps -eo pid,ppid,state看原始状态
相关文章
- w3school官网下载:学习编程知识的便捷之选 08-29
- 编程可视化工具有哪些:了解最新的选择与创新 08-29
- 小米路由器开发版怎么刷回稳定版(小米路由器开发版恢复稳定版方法) 08-29
- 编程软件有哪几种?找到适合你的开发利器! 08-29
- POM:软件测试中的一种设计模式 08-29
- 后端框架开发工具:如何使用调试器、日志记录、测试框架 08-29