Mac无法自动实现“休眠→倒计时→关机”,需禁用休眠并启用poweroffdelay:先sudo pmset repeat cancel清空调度,再sudo pmset -c sleep 0和sudo pmset -c disablesleep 1; sudo pmset -c poweroffdelay 600,合盖后10分钟自动关机(仅接电源有效)。

你想让Mac在进入休眠状态后等待一段固定时间再自动关机,避免设备长期挂起耗电或发热,但系统原生不支持“休眠→倒计时→关机”的链式触发,必须通过禁用休眠、改设关机延迟并人工配合合盖动作来实现近似效果。
用pmset禁用休眠并启用闲置关机
这一步是核心,必须先切断系统默认的休眠路径,否则poweroffdelay永远不会被触发。Mac默认优先走睡眠流程,不主动关机。
打开“终端”(Command + 空格搜“终端”回车)。
先清空所有现存电源调度:sudo pmset repeat cancel → 回车 → 输入管理员密码(【输入时无任何字符显示,属正常现象,务必准确输入后按回车】)。
执行命令彻底禁用闲置睡眠:sudo pmset -c sleep 0 → 这会关闭电源适配器下的自动睡眠行为。
关键指令:启用关机延迟并设为10分钟(即600秒):sudo pmset -c disablesleep 1; sudo pmset -c poweroffdelay 600 → 其中disablesleep 1是强制绕过睡眠的开关,缺它整个流程就卡在休眠不动。
验证是否生效:输入pmset -g custom → 查看输出中poweroffdelay是否为600,且disablesleep显示为1;若不是,请重新执行上一步命令。
人工配合:合盖即启动倒计时
该方案无法全自动监听“屏幕关闭”事件,但你可以养成习惯:每次准备离开前手动合上MacBook盖子 → 系统检测到无操作+禁用睡眠 → 10分钟后自动关机。
合盖后无需做其他操作,也不用保持终端开启——pmset设置由系统守护进程接管,终端关闭不影响执行。
若中途返回,想取消关机:打开终端 → 输入sudo shutdown -c → 回车即可立即中止倒计时。
注意:此流程仅在连接电源时稳定生效;电池供电下poweroffdelay可能被忽略,系统仍会进入普通睡眠。
替代方案:快捷指令+AppleScript模拟(需手动触发)
方法一:创建一个叫“合盖后关机”的快捷指令
打开“快捷指令”App → 点右上角“+”新建 → 命名“合盖后关机” → 点“添加操作” → 搜索“运行AppleScript” → 粘贴以下脚本:
tell application "System Events"
do shell script "pmset -g | grep 'displaysleep' | awk '{print $2}' | grep -q '0' && shutdown -h now || (sleep 600 && shutdown -h now)"
end tell
点击“下一步”→ 关闭“运行前询问”→ 点击“完成”。
使用时:合盖前,手动点开这个快捷指令运行一次——它会先检测屏幕是否已关闭(display sleep为0),是则立刻关机,否则等10分钟再关机。











