在 macOS 上执行长时间任务时,系统可能因空闲而自动休眠。使用 caffeinate 命令可以保持系统唤醒,确保测试、编译、打包等任务持续运行。
常用命令
保持唤醒(推荐)
caffeinate -disu
说明:
- 前台运行
- 占用当前终端
- 关闭终端或按
Ctrl+C即可结束
保持唤醒 2 小时
caffeinate -disu -t 7200
说明:
- 7200 秒 = 2 小时
- 时间到自动退出
后台运行
caffeinate -disu &
说明:
- 不占用终端
- 可继续执行其它命令
查看后台任务:
jobs -l
示例:
[1]+ 12345 Running caffeinate -disu &
其中:
1:Job ID12345:进程 PID
结束任务:
kill 12345
或:
kill %1
结束所有 caffeinate:
pkill caffeinate
任务执行期间保持唤醒(最佳实践)
caffeinate -disu dotnet publish
或:
caffeinate -disu ./build.sh
说明:
- 任务运行期间不休眠
- 任务结束自动退出
- 无需手动关闭
参数说明
| 参数 | 作用 |
|---|---|
-d |
防止显示器休眠 |
-i |
防止系统因空闲而睡眠 |
-s |
防止系统睡眠(接电源时有效) |
-u |
模拟用户活动 |
-t |
持续指定秒数 |
查看是否生效
pmset -g assertions
看到以下类似信息说明 caffeinate 正在生效:
PreventUserIdleSystemSleep
PreventUserIdleDisplaySleep
推荐用法
临时防休眠:
caffeinate -disu
执行构建任务:
caffeinate -disu dotnet publish
需要后台运行:
caffeinate -disu &
jobs -l
kill <PID>