了解 Mac 上正在运行哪些进程,对于排查性能问题、追踪异常应用和掌握系统后台行为至关重要。无论你习惯使用图形界面还是命令行,macOS 都提供了多种方式让你全面掌控。
快速结论
从 /Applications/Utilities/ 打开活动监视器即可快速查看所有运行中的进程。使用终端命令如 ps、top、lsof 可获得更详细、可编程的输出。如需进阶检查——包括进程树、环境变量和短命进程捕获——可使用 ProcXray 。
方法一:活动监视器
活动监视器是 Apple 内置的进程查看器,可显示每个运行进程的 CPU、内存、能耗、磁盘和网络使用情况。
如何打开活动监视器
- 打开 Finder。
- 前往 应用程序 > 实用工具。
- 双击 活动监视器。
或者,按 Cmd + Space 打开聚焦搜索,输入”Activity Monitor”,按回车。
查看所有进程
默认情况下,活动监视器只显示当前用户的进程。要查看全部进程:
- 点击菜单栏的 显示 菜单。
- 选择 所有进程。
现在你可以看到 Mac 上运行的所有进程,包括系统守护进程和后台服务。
排序和筛选
- 点击任意列标题(CPU、内存、PID)按该指标排序。
- 使用右上角的搜索栏按进程名称过滤。
- 在 CPU、内存、能耗、磁盘和网络选项卡之间切换,查看不同资源视图。
局限性
活动监视器适合快速检查,但存在明显盲区:
- 没有进程树。 只能看到扁平列表,无法显示父子关系。当应用派生出辅助进程时,你无法辨别哪个进程启动了哪个。
- 无法查看环境变量。 无法检查进程启动时的环境配置。
- 短命进程不可见。 在刷新间隔内启动并退出的进程永远不会被显示。
- 不支持正则搜索。 搜索栏只支持简单的文本匹配。
方法二:终端命令
终端提供了更强大和灵活的进程查看能力。以下是最常用的命令。
ps — 列出进程
ps 命令打印当前进程的快照。
# 列出所有运行中的进程及详细信息
ps aux
每一行显示用户、PID、CPU 使用率、内存使用率、启动时间和完整命令。
按名称查找特定进程:
# 查找所有名称包含 "Safari" 的进程
ps aux | grep Safari
查看完整的命令行参数(对调试脚本很有用):
# 显示指定 PID 的完整命令
ps -p 1234 -o pid,command
top — 实时进程监视器
top 命令提供一个持续更新的运行进程实时视图。
# 启动 top,按 CPU 使用率排序
top -o cpu
按 q 退出。运行中可按 o 并输入列名来更改排序方式。
如果只需要一次性快照而不进入交互模式:
# 输出 CPU 占用前 10 的进程后退出
top -l 1 -n 10 -o cpu
lsof — 列出打开的文件和连接
每个进程都持有打开的文件、套接字和系统资源。lsof 命令可以揭示它们。
# 显示指定进程的所有打开文件
lsof -p 1234
# 查找哪个进程正在使用特定端口
lsof -i :8080
# 列出所有网络连接
lsof -i
组合使用
可以将这些命令串联起来进行针对性排查:
# 一步完成:找到进程 PID 并列出其打开的文件
lsof -p $(pgrep -f "node server.js")
局限性
终端命令虽然强大,但也有不足:
- 输出内容可能铺天盖地——
lsof经常产生数千行结果。 ps显示的是静态快照;短命进程可能在你查看之前就已退出。- 在
ps、top和lsof之间关联数据需要手动操作。 - 没有直观的进程层级视图。
方法三:ProcXray
ProcXray 是一款原生 macOS 应用,兼具图形界面的便捷性和超越活动监视器与终端命令的深度。
ProcXray 的优势
- 进程树视图。 在扁平列表和实时层级树之间一键切换,立即看清父子关系。可以瞬间了解哪个应用或脚本启动了某个进程。
- 环境变量检查。 点击任意进程即可查看其启动时的每一个环境变量——支持搜索,可一键复制为 JSON 格式。
- 短命进程捕获。 新生进程以绿色高亮显示,已退出的进程在可配置的时间窗口内以红色保留。活动监视器和
ps漏掉的瞬态进程尽在掌握。 - 实时正则搜索。 在进程名称、PID、命令行参数和路径等维度使用正则表达式过滤。
- 代码签名验证。 一目了然地查看每个进程是否已签名、签名者是谁以及持有哪些权限(Entitlements)。
当你不仅想知道有哪些进程在运行,更想了解它们为什么在运行时,ProcXray 尤其有用。
各方法适用场景对比
| 任务 | 活动监视器 | 终端 | ProcXray |
|---|---|---|---|
| 快速查看 CPU/内存 | 最佳 | 较好 | 较好 |
| 查看所有运行进程 | 较好 | 最佳 | 最佳 |
| 按名称查找进程 | 较好 | 较好 | 最佳 |
| 查看进程树(父子关系) | 不支持 | 有限 | 最佳 |
| 检查环境变量 | 不支持 | 繁琐 | 最佳 |
| 捕获短命进程 | 不支持 | 不支持 | 最佳 |
| 脚本化/自动化检查 | 不支持 | 最佳 | 不支持 |
| 查看代码签名 | 不支持 | 手动操作 | 最佳 |
常见问题(FAQ)
Mac 上通常有多少个进程在运行?
一台普通 Mac 通常同时运行 300 到 500 个进程,其中大部分是系统守护进程和后台服务,这属于正常现象。如果你发现进程数量异常增多或出现陌生的进程名称,建议使用 ps aux 或 ProcXray 进行排查。
不安装任何软件能查看运行中的进程吗?
可以。每台 Mac 都预装了活动监视器,ps 和 top 等终端命令也是开箱即用的,足以覆盖大部分基础需求。当你需要更深入的检查能力时,ProcXray 等第三方工具的价值就会体现出来。
如何找到并停止拖慢 Mac 的进程?
- 打开活动监视器,点击 CPU 选项卡。
- 点击 % CPU 列标题按 CPU 使用率排序。
- 找到占用资源最多的进程。
- 选中该进程,点击工具栏中的 X 按钮退出它。
对于拒绝退出的进程,可在终端中执行:kill -9 <PID>,将 <PID> 替换为活动监视器或 ps aux 中显示的进程 ID。
参考资料
下载 ProcXray → — 免费,支持 macOS Sonoma 及以上版本。