进程管理
macOS 与多数 Unix 系系统类似:进程是资源分配的基本单位(内存描述、文件描述符、凭证等),线程是 CPU 调度的单位。日常说的「卡住了」「占内存」多半对应某个进程或子进程行为异常。
图形界面:活动监视器
路径:应用程序 → 实用工具 → 活动监视器(Activity Monitor)。
| 列 / 区域 | 含义 |
|---|---|
| CPU | 各进程的 CPU 占用;「% CPU」合计可超过 100%(多核) |
| 内存 | 实体内存使用;留意「已使用内存」「交换」「已压缩」 |
| 能耗 | 对笔记本续航影响较大的进程 |
| 磁盘 / 网络 | I/O 与网络吞吐 |
常用操作:
- 选中进程后点 ×(或菜单「显示 → 退出」):先尝试正常退出,必要时强制退出。
- 菜单栏 显示 → 所有进程 / 分层显示 / 父进程 便于理解进程树。
与快捷键配合:常用快捷键 中的 ⌘ ⌥ Esc 可打开「强制退出应用程序」窗口,等价于对前台应用做集中管理。
命令行速览
在「终端」中(详见 终端与Shell):
查看进程
# 快照:与当前终端相关的进程
ps
# 全量进程(BSD 风格,macOS 常用)
ps aux
# 按 CPU 排序看前几名(示例)
ps aux | sort -nrk 3 | head -n 15top:实时列表,按q退出。htop:若通过 Homebrew 安装(brew install htop),交互更清晰。
按名称查找
pgrep -lf Safari结束进程
| 方式 | 说明 |
|---|---|
kill PID | 默认发 TERM(15),进程可捕获并清理后退出 |
kill -9 PID | KILL,不可忽略,最后手段 |
killall 进程名 | 按名称结束(如 killall Finder 会重启 Finder) |
pkill -f 模式 | 按命令行匹配,注意勿误杀 |
先尽量用 正常退出 或 kill(TERM),避免直接 -9 导致未保存数据丢失。
后台任务与作业(Shell)
在交互式 shell 中:
⌃ Z:挂起前台进程(暂停,放入后台作业)。bg/fg:让作业在后台/前台继续。jobs:列出当前 shell 的作业。⌃ C:向前台进程组发送 SIGINT,通常中断命令。
挂起的作业仍占用部分资源;长期不用可 kill %1 等形式结束。
launchd 与用户代理(简要)
系统与第三方常驻服务多由 launchd 管理,配置在:
- 系统:
/Library/LaunchDaemons、/Library/LaunchAgents - 用户:
~/Library/LaunchAgents
命令 launchctl 可列出、加载、卸载 plist 定义的服务。修改系统服务需谨慎;一般用户问题优先用活动监视器或 ps 定位具体进程再处理。
内存压力与「变慢」
活动监视器底部 内存压力 条:
- 绿色:通常正常。
- 黄色 / 红色:系统开始压缩内存、使用交换(磁盘),整体会变慢。
此时可结束明显占用大且非必要的进程,或关闭多余标签/应用;单靠「清理内存」类第三方工具往往收益有限,不如找到高负载进程。