type
status
date
slug
summary
tags
category
icon
password
wechat_gate
最近经常用 Claude Code、Codex、Cursor 等 AI Agent 长时间执行任务。
很多人会遇到一个问题:
  • Mac 自动睡眠,导致任务中断
  • 人已经睡觉了,电脑却整晚运行
  • 第二天起来发现电量耗尽
这时候可以利用 macOS 自带的 caffeinateshutdown 命令,实现:
保持电脑唤醒 → 运行任务 → 自动关机

什么是 caffeinate?

caffeinate 是 macOS 自带的命令行工具。
顾名思义,就是让电脑“喝咖啡”,保持清醒。
最常见的用法:
参数说明:
参数
作用
-d
防止显示器休眠
-i
防止系统空闲睡眠
执行后:
只要该命令保持运行:
  • 屏幕不会休眠
  • 系统不会自动睡眠
  • 网络连接保持活跃
  • AI Agent 可以持续工作

caffeinate 可以定时关机吗?

答案是不可以。
caffeinate 只负责阻止睡眠。
它本身没有:
  • 自动关机
  • 自动重启
  • 定时任务
等功能。
如果需要自动关机,需要配合 shutdown 使用。

定时关机

两小时后关机

含义:

指定时间关机

例如晚上 11 点:

取消关机计划


防睡眠两小时后自动关机

这是最常见的场景。
参数解释:
运行后:
  • Mac 保持唤醒
  • AI Agent 持续执行
  • 两小时后自动关机

为什么两小时后没有关机?

很多开发者都会遇到:
两小时后并没有关机。
通常有两个原因。

原因一:有进程阻止系统关机

常见阻止者包括:
  • Docker Desktop
  • Chrome / Edge
  • Zoom
  • Teams
  • Xcode Simulator
  • VMware
  • Parallels
  • Screen Sharing
  • 外接显示器
  • 系统更新进程
查看当前阻止关机的进程:
重点关注:
以及:
例如:
这说明对应进程正在阻止系统进入关机流程。

原因二:sudo 认证过期

这是更常见的情况。
macOS 默认 sudo 认证有效期大约为:
例如:
虽然启动时输入过密码,
但两个小时后执行关机动作时,
sudo 凭据已经失效。
因此关机失败。

保持 sudo 认证有效

先刷新认证:
然后启动后台续期:
最后再执行:
这样即使几个小时后执行关机,
sudo 权限依然有效。

强制关机方案

如果确认无需保存任何内容,
可以使用:
或者:
相比:
更加直接。

使用脚本自动关机

创建:
内容:
赋予权限:
执行:
运行逻辑:

AI Agent 场景推荐方案

如果目标是:
  • Claude Code
  • Codex
  • Cursor Agent
  • 本地 LLM
  • 自动化脚本
更推荐:
例如:
或者:
执行流程:
这种方式不依赖定时器。
任务提前完成就提前关机。
任务运行更久也不会中断。
对于长时间 AI Agent 工作流通常更加可靠。

查看当前关机计划

示例:

查看 caffeinate 是否运行

示例:
表示当前系统仍然处于防睡眠状态。

推荐组合

临时保持唤醒

保持唤醒两小时

两小时后自动关机

保持唤醒并两小时后关机

命令执行完成自动关机

保持唤醒 2 小时,然后自动睡眠或关机

caffeinate -di 的作用是阻止 Mac 自动睡眠和显示器休眠,但它不会阻止强制关机
如果你想让 Mac 保持唤醒 2 小时,然后自动允许睡眠
参数说明:
  • d:防止显示器睡眠
  • i:防止系统 idle sleep(系统空闲睡眠)
  • t 7200:持续时间,单位秒(2小时)
2小时后 caffeinate 退出,系统恢复正常睡眠策略。

如果你想:运行任务两个小时,然后 2 小时后自动关机
用:
含义:
  • h:halt,关机
  • +120:120分钟后执行
例如:
效果:
  1. Mac 两小时内保持唤醒
  1. 两小时后自动关机

如果是跑 Codex / Claude Code / 编译 / 下载任务,更推荐

多加:
  • m 防止磁盘睡眠
  • s 接电源时阻止系统睡眠
  • u 模拟用户活动
适合长时间 AI Agent、Xcode Archive、模型下载等任务。
查看当前 caffeinate:
取消:
如果是 MacBook Air M4 跑 Codex/Claude Code 长任务,建议用 caffeinate -dimsu,避免中途进入睡眠导致任务暂停。

总结

caffeinate 负责保持 Mac 清醒。
shutdown 负责计划关机。
如果定时关机失败,优先检查:
确认是否有进程阻止关机。
同时确认是否存在:
的问题。
对于运行 Claude Code、Codex、Cursor 等 AI Agent 的开发者来说,最稳定的方案通常是:
任务完成立即关机,不依赖时间预估,也不会因为睡眠或长时间无人值守而导致资源浪费。