进程管理

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 15
  • top:实时列表,按 q 退出。
  • htop:若通过 Homebrew 安装(brew install htop),交互更清晰。

按名称查找

pgrep -lf Safari

结束进程

方式说明
kill PID默认发 TERM(15),进程可捕获并清理后退出
kill -9 PIDKILL,不可忽略,最后手段
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 定位具体进程再处理。


内存压力与「变慢」

活动监视器底部 内存压力 条:

  • 绿色:通常正常。
  • 黄色 / 红色:系统开始压缩内存、使用交换(磁盘),整体会变慢。

此时可结束明显占用大且非必要的进程,或关闭多余标签/应用;单靠「清理内存」类第三方工具往往收益有限,不如找到高负载进程。


相关链接