睡眠与电源

用 caffeinate 在“终端”中让 Mac 保持唤醒

caffeinate 命令可在任务运行期间阻止 Mac 进入睡眠。它是 macOS 自带的命令,不会更改任何设置。

适用于:所有当前 macOS 版本。“系统设置”路径适用于 macOS 13 Ventura 及更高版本。核查日期:2026年10月29日

症状

  • Mac 进入睡眠后,下载、构建或脚本随之中断。
  • 远程会话或 SSH 连接在几分钟无输入后断开。
  • 想让 Mac 为某个任务保持唤醒,但不想更改睡眠设置。

可能的原因

  • 闲置睡眠。一段时间没有键盘或鼠标输入后,macOS 会让 Mac 进入睡眠。仅有网络活动并不总能阻止这一点。
  • 显示器睡眠。显示器按自己的计时器关闭。在某些 Mac 上,系统随后也会进入睡眠。
  • 机盖。合上 Mac 笔记本电脑的机盖会让它进入睡眠,caffeinate 无法改变这一点。请参阅合盖时让 Mac 笔记本电脑继续工作。

如何检查

  1. 打开“终端”,查看当前有哪些进程在阻止睡眠。

    pmset -g assertions

    输出 一系列断言(例如 PreventUserIdleSystemSleep),以及持有每个断言的进程。

  2. 查看当前生效的睡眠设置。

    pmset -g

如何修复

  1. 要在某个命令运行期间让 Mac 保持唤醒,请在命令前加上 caffeinate -i。命令结束时,断言随之解除。

    caffeinate -i make
  2. 要让 Mac 在固定时长内保持唤醒,请用 -t 以秒为单位指定时长。本例为两小时。

    caffeinate -i -t 7200
  3. 要让 Mac 保持唤醒直到某个进程结束,请用 -w 指定该进程的 ID。

    caffeinate -i -w 12345
  4. 要让显示器也保持开启,请加上 -d。

    caffeinate -d -i
  5. 要停止不带命令启动的 caffeinate,请按下 Control-C。

  6. 要在显示器关闭时阻止自动睡眠,请更改相应设置。在 Mac 笔记本电脑上,选取苹果菜单 >“系统设置”>“电池”>“选项”,打开“使用电源适配器且显示器关闭时,防止自动进入睡眠”。

  7. 在 Mac 台式电脑上,选取苹果菜单 >“系统设置”>“节能”,打开“显示器关闭时,防止自动进入睡眠”。

使用 Kilobat

  1. Kilobat 可以让 Mac 保持唤醒,直到下载停歇再让它睡眠。从菜单栏打开 Kilobat,点按茶杯图标并选择“直到下载完成”。

  2. CLI 也能做到:速度持续 3 分钟低于 16 KB/s 后即停止。

    kilobat awake --until-quiet
  3. 要在某个命令运行期间让 Mac 保持唤醒,并查看它传输了多少数据,请使用 awake --。

    kilobat awake -- make release
  4. 这些功能都是免费的。App、CLI 和 MCP 的操作步骤请参阅实用技巧。

常见问题

caffeinate 能在合盖时让 Mac 保持唤醒吗?

不能。caffeinate 阻止的是闲置睡眠。合上机盖仍会让 Mac 笔记本电脑进入睡眠,除非 Mac 连接了外接显示器、键盘和电源。请参阅合盖时让 Mac 笔记本电脑继续工作。

-s 选项有什么作用?

-s 阻止系统睡眠。man 手册页说明,它仅在 Mac 使用交流电源时有效。

caffeinate 会更改我的设置吗?

不会。它创建的是电源断言,caffeinate 停止时,断言即随之解除。

参考资料

参考资料核查于 2026年10月29日。man 手册页为 macOS 自带版本;在“终端”中用 man <name> 打开。