macOS不支持休眠中定时关机,需用pmset设置系统级定时关机(如sudo pmset repeat shutdown MTWRFSU 23:00:00)或禁用睡眠仅保留定时关机;先用pmset -g | grep hibernatemode确认是否真休眠(hibernatemode 25)。

你想让Mac在休眠状态下仍能按时关机,避免因设备处于睡眠而跳过计划——但macOS原生机制不支持在休眠(hibernation)中唤醒执行关机任务,必须改用系统级电源调度或绕过睡眠状态直接设为定时关机。
确认当前是否真在“休眠”而非“睡眠”
macOS默认使用的是“安全睡眠”(safe sleep)或“现代睡眠”(standby),并非传统意义上的磁盘休眠(hibernation)。真正休眠需手动启用并修改nvram参数,普通用户几乎不会触发。先验证你的Mac是否真的进入休眠:
打开终端 → 输入pmset -g | grep hibernatemode → 若返回值为25,则处于休眠模式;若为3(默认)或0,则是常规睡眠,此时定时关机本就不该失效。
【绝大多数用户看到的“关机没执行”,实际是因为Mac处于睡眠且未连接电源、未登录、或快捷指令未唤醒设备】。
用pmset强制绕过睡眠执行每日关机
此方法让系统守护进程接管关机指令,不依赖用户会话或前台状态,即使Mac在睡眠中也会在指定时刻彻底断电。
第一步:打开“终端”(Command + 空格 → 输入“终端” → 回车)。
第二步:清空已有调度,输入sudo pmset repeat cancel → 回车 → 输入管理员密码(无显示,正常)。
第三步:设置每日23:00强制关机,输入sudo pmset repeat shutdown MTWRFSU 23:00:00 → 回车 → 再输密码。
第四步:验证是否写入成功,输入pmset -g sched → 查看输出中是否有含shutdown和23:00:00的一行;若有,说明已由系统底层注册,无需唤醒即可执行。
注意:此命令对M系列芯片Mac完全有效,且不依赖是否登录、是否插电(但插电时可靠性更高)。
禁用睡眠,只保留定时关机
如果目标只是“确保关机一定发生”,最稳妥的方式是不让Mac进入任何低功耗状态——关闭自动睡眠,仅靠定时关机兜底。
点击左上角苹果菜单 → “系统设置” → 左侧选“电池”(MacBook)或“节能器”(台式机) → 向右滚动到底部 → 点击“调度”按钮。
取消勾选“设定以下日期的睡眠、重新启动或关机”中的“睡眠”选项,只保留“关机”并设好时间(如23:00)→ 点击“好”保存。
再回到“电池”或“节能器”主页面 → 找到“防止自动睡眠”选项 → 开启它 → 这样Mac将始终保持唤醒状态直到定时关机触发。
【开启“防止自动睡眠”后,Mac整晚持续供电,务必确认散热环境良好,否则可能过热】。
用快捷指令+AppleScript模拟“休眠中唤醒关机”(不推荐)
快捷指令无法唤醒深度休眠设备,但可尝试在预计关机前1分钟强制唤醒,再立即关机——这需要配合“电源适配器连接”和“允许远程唤醒”前提,成功率低且不稳定。
方法一:创建两个自动化
第一个:触发时间为22:59,动作是“运行AppleScript”,脚本内容为do shell script "pmset wakeorpoweron \"$(date -v+1M +%Y%m%d%H%M%S)\""(尝试唤醒);
第二个:触发时间为23:00,动作是“关机”。
方法二:改用launchd plist后台服务(需编写XML配置文件并加载),但M系列Mac对wakeorpoweron调用存在兼容性问题,实测易失败。
不建议普通用户尝试此路径,因唤醒失败率高,且一旦误设可能引发反复唤醒耗电。











