在长时间构建与编译期间让 Mac 保持唤醒
一次漫长的 Xcode 归档、一次 cargo build --release、一次 Gradle 或 npm 安装,或者本地 CI 运行,正是 macOS 认定机器空闲的经典时刻。屏幕变暗,系统睡眠,构建卡住或中断。Keepresso 会为这项任务让 Mac 保持唤醒,工作结束后再让它休息。
按任务选合适的方式
1. 定时会话(最简单)
如果你知道构建通常会在某个时间窗口内结束:
- 点击菜单栏里的 Keepresso 杯子。
- 选择时长(1 小时、4 小时、自定义,或直到某个时间)。
- 启动保持唤醒,再开始构建。
计时器结束后,Keepresso 就不再维持系统唤醒。详情:定时会话。
2. 进程触发器(不用动手)
只在构建工具真正运行时保持唤醒:
- 打开偏好设置 → 触发器。
- 打开触发门控。
- 添加一个进程运行中条件,并匹配命令,例如
xcodebuild、swift、cargo、rustc、gradle、java、node、npm、pnpm、make、ninja或cmake。 - 如果用到多种工具,用任一组合。
进程退出后,Keepresso 会结束会话(在你设定的宽限期之后),Mac 就可以重新睡眠。参见智能触发器。
3. CPU 负载触发器(与工具无关)
如果工具名称会变,但机器明显在工作:
- 添加一个CPU 高于阈值条件(50% 或 75% 是不错的起点)。
- 保留平滑处理:短暂峰值不会打开会话,持续负载才会。
这很适合混合工具链,或会在不同名称下派生子进程的 IDE 构建。
4. 媒体渲染 / AI 智能体预设
内置预设覆盖常见的长时间任务:
- 媒体渲染在
ffmpeg运行时保持唤醒。 - AI 智能体在编程智能体(
claude、codex、gemini及同类工具)真正工作时保持唤醒,而不只是打开着,这样笔记本上的通宵智能体任务能跑完,工作结束后 Mac 仍会睡眠。
从条件菜单应用预设,它会替换当前规则集并打开触发器。
想在任务完成的那一刻就知道?在偏好设置,自动化下的事件钩子可以在会话结束或智能体转为闲置时运行快捷指令、POST 一个 webhook,或执行 shell 命令,推送到手机也包含在内。如果任务在你醒来之前就开始,同一标签页里的定时唤醒会按时把 Mac 叫醒。
可选:关屏、合盖
构建不需要一块亮着的面板。
- 如果你只关心系统保持运行,可以关掉阻止显示器睡眠。指南:关屏时让 Mac 保持唤醒。
- 在 MacBook 上,启用合盖模式,让机器在包里或架子上继续编译,合盖时内部面板进入睡眠。指南:合盖。
电池安全
在笔记本上,把保持唤醒与电量感知自动暂停搭配使用,避免被遗忘的会话把电量耗尽。在偏好设置里设一个下限(例如 20%),电量低于它时 Keepresso 会暂停。更多说明:智能触发器。
脚本与 CI 机器
面向无显示器的构建机或脚本化流水线:
# Hold the Mac awake exactly as long as the build runs (app not required)
your-build-command & keepresso -w $!
# Or drive the running app
keepresso start --for 120
keepresso stop
对于无人值守的流水线,自动化租约比“启动再停止”一对命令更安全:它是脚本必须不断续期的有界授权,崩溃任务无法把 Mac 钉在唤醒状态,租约只会自行到期。
ID=$(uuidgen)
keepresso lease acquire --id "$ID" --tool ci --task "release build" --ttl 600
# ... heartbeat on a loop while the build runs ...
keepresso lease release --id "$ID"
如果任务由 AI 智能体驱动,你甚至不用自己写这些:一个内置技能和 MCP 服务器会把整套协议教给智能体。参见让 AI 智能体让 Mac 保持唤醒。
安装与 PATH 说明:keepresso CLI。在一台只做构建的 Mac mini 上,也请跑一遍无显示器设置清单,让登录与睡眠策略符合常驻机器的要求。
相关
更多「使用 Keepresso」内容
