返回博客
macOS 开发工具 进程监控

macOS 进程监控完整指南:开发者必备

超越活动监视器,深入学习如何监控、检查和管理 macOS 进程——从进程树、PID 到环境变量和代码签名,一应俱全。

每位 macOS 开发者都会遇到同样的困境:活动监视器告诉你某个进程正在吃掉大量 CPU,却几乎无法提供任何有用的信息来帮你找到根源。本文从基础到进阶,全面介绍 macOS 进程监控的方方面面。

什么是进程?

在 macOS 中,每个正在运行的程序都是一个进程,拥有唯一的进程 ID(PID)。当你打开浏览器,macOS 会启动一个父进程,而该父进程又可能启动数十个子进程——渲染进程、GPU 进程、扩展进程等。理解这种层级关系,是高效监控的第一步。

基础工具:活动监视器

Apple 内置的活动监视器(/Applications/Utilities/Activity Monitor.app)提供:

日常使用尚可。但对于开发者而言,它的局限几乎立刻就会显现。

活动监视器的短板

作为开发者,你很快就会碰到这些问题:

没有进程树视图。 活动监视器只展示一个扁平列表。当一个 shell 脚本派生出五个子进程、这些子进程又各自产生后代时,你看到的只是一团乱麻,根本无法分辨谁启动了谁。

无法查看环境变量。 当你需要调试为什么 NODE_ENVDYLD_LIBRARY_PATH 在某个进程内部设置错误时,根本没有办法检查该进程实际的启动环境。

没有实时正则搜索。 从 300 个进程中按名称过滤需要反复输入,而且经常自动重置。

短命进程完全不可见。 构建系统在毫秒之间启动并销毁编译器进程?活动监视器根本来不及捕捉。

命令行方案

pstoplsofdtrace 可以弥补部分不足:

# 显示进程树
ps auxf

# 列出某进程的所有打开文件
lsof -p <PID>

# 查看某进程的环境变量
ps eww -p <PID>

这些工具虽然强大,但使用起来相当繁琐。ps eww 的输出是一堵难以阅读的文字墙;lsof 的结果可能长达数千行。

更好的选择:ProcXray

ProcXray 是一款专为开发者打造的原生 macOS 应用,旨在提供活动监视器所缺失的深度数据。

进程树视图

在扁平列表与实时进程树之间一键切换,立即呈现父子关系——对于调试 shell 脚本、构建工具或 Chrome、Electron 等多进程应用至关重要。

环境变量检查器

点击任意进程,切换到环境变量选项卡。进程启动时的每一个环境变量都清晰列出,支持搜索,并可一键复制为 JSON 格式。从此告别 ps eww 的痛苦解析。

实时正则搜索

输入正则表达式,列表立即在进程名称、PID、命令行参数和路径等维度同步过滤。定位 node.*serverpython3.*manage,毫秒之间。

短命进程捕获

ProcXray 以绿色高亮新生进程,并在可配置的时间窗口内保留已退出的进程(以红色标记)。那些在活动监视器刷新之前就消失的短暂编译器和链接器进程,终于无所遁形。

代码签名验证

安全审计时,ProcXray 直观展示每个进程的签名状态、签名身份以及 Entitlements 列表——无需面对晦涩的 codesign -dvvv 输出。

工具选择参考

场景推荐工具
快速查看 CPU/内存活动监视器
调试失控进程ProcXray
检查进程环境变量ProcXray
追溯进程父子关系ProcXray
发现未签名可疑进程ProcXray
自动化脚本监控pstopdtrace

立即开始

免费下载 ProcXray — 已代码签名并经 Apple 公证。需要 macOS 14 (Sonoma) 或更高版本,支持 Apple Silicon 与 Intel。

安装后,ProcXray 将取代你日常使用活动监视器的习惯,带来真正让你提速的监控体验。