
关于
阅读关于 TrueTree 概念的全部内容,请点击此处
TrueTree 不仅仅是 macOS 上的一个 pstree 命令。它用于以层级结构展示当前运行进程的进程树,该结构基于从操作系统收集到的附加 PID 构建。由于大量 XPC 通信的存在,基于传统 PID 和 PPID 构建的标准进程树在 macOS 上帮助甚微——绝大多数进程的父进程最终都指向 launchd。而 TrueTree 展示的进程树旨在为事件响应人员、威胁猎手、研究人员以及所有相关人员提供实用价值!
重大更新: 随着 macOS 功能不断变化,自 macOS 11 起,部分功能的表现与当初撰写 TrueTree 原始博客文章时已有所不同。Apple 引入了一个新进程 "runningboardd",它最终成为许多进程的实际父进程。为应对此情况,TrueTree 已更新为使用 Application Services 框架,这允许在某些场景下获取真实父进程。然而,如果父进程已终止,此方法将无法再获取真实父进程,从而难以精确定位某些真实父进程(如 "open" 命令)。这是为了确保 TrueTree 能在各 macOS 版本中继续运行所需付出的微小代价。其他真实父进程的线索通常可以在 launchctl procinfo 的输出中找到。这可能会在将来被纳入考虑。
./TrueTree -h
--nocolor -> 不在输出中对项目进行颜色编码
--timeline -> 按创建时间戳排序并打印所有进程
--timestamps -> 包含进程时间戳
--standard -> 打印标准 Unix 树而非 TrueTree
--sources -> 打印每个进程父进程的来源
--nonetwork -> 不打印网络连接
--nopid -> 不打印每个进程旁的 PID
--nopath -> 仅打印进程名称而非完整路径
--version -> 打印 TrueTree 版本号
-o -> 输出到文件
注意:需要 Root 权限
./TrueTree
使用 TrueTree 概念显示增强的进程树

./TrueTree --standard
要基于标准 PID 和 PPID 输出树,请使用 --standard

./TrueTree --timestamps
要在任一格式的输出中添加进程创建时间,请使用 --timestamps 选项

./TrueTree --sources
要显示每个父 PID 的来源,请使用 --sources 选项

./TrueTree --timeline
不收集树结构,仅按创建时间排序打印进程
