mac原生支持闲置自动关机,唯一可靠方案是用pmset命令禁用睡眠并设置poweroffdelay;快捷指令+applescript仅能定时或手动触发;系统调度+安全睡眠属间接方式,非真正闲置关机。

Mac没有“闲置自动关机”开关,但系统原生支持通过电源管理策略,在持续无操作后触发关机——关键在于绕过默认的“睡眠”行为,强制进入关机流程,且必须避开系统对未保存文档的拦截机制。
用pmset命令设定闲置超时后关机
这是唯一能真正实现“闲置→关机”的原生方案,依赖底层电源管理,不依赖用户登录状态,但需手动禁用系统默认的睡眠保护逻辑。
打开“终端”(Command + 空格搜“终端”回车)。
先关闭所有现有调度任务,避免冲突:【sudo pmset repeat cancel】 → 输入管理员密码(无显示,输完直接回车)。
执行命令强制禁用闲置睡眠,启用关机:sudo pmset -c sleep 0 → 这会关闭电源适配器下的自动睡眠,为关机腾出通道。
设置闲置15分钟后关机(单位为秒):【sudo pmset -c disablesleep 1; sudo pmset -c poweroffdelay 900】 → 其中900=15×60,数值可按需修改;disablesleep 1是关键开关,否则系统仍优先走睡眠路径。
验证是否生效:输入pmset -g custom,检查输出中poweroffdelay值是否为你设定的秒数,且disablesleep显示为1。
用快捷指令+AppleScript模拟闲置关机
此方法无法真正检测“闲置”,但可通过定时+人工确认组合规避风险,适合对文档安全要求高的场景。
方法一:创建每日固定延迟关机自动化
打开“快捷指令”App → 切换到“自动化”标签页 → 点击“+” → 选择“特定时间”。
设时间为凌晨1:00,开启“重复”并选“每天” → 点击“下一步”。
点“添加操作” → 搜索“运行 AppleScript” → 选择后粘贴脚本:osascript -e 'tell app "System Events" to shut down'。
关闭“运行前询问” → 点击“完成”;首次运行时授权“快捷指令”控制电脑。
方法二:手动触发式闲置检查(需配合使用习惯)
在快捷指令中新建一个快捷指令,名称叫“确认关机”。
添加操作:“显示提醒” → 内容写“已闲置30分钟,是否关机?” → 添加按钮“是”“否”。
点击“是”按钮后接“运行 AppleScript” → 脚本同上。这样每次你离开前手动点一下,系统才执行关机。
通过系统设置间接实现(仅限插电场景)
该路径实际触发的是“睡眠”,但可利用系统休眠后自动关机的链式反应,前提是Mac必须连接电源且已启用“安全睡眠”。
点击左上角苹果菜单 → “系统设置” → 左侧选“电池”(笔记本)或“节能器”(台式机)。
向右滚动到底部 → 点击“调度”按钮。
勾选“设定以下日期的睡眠或关机” → 右侧下拉选“睡眠”,设时间为23:00 → 点“好”保存。
再打开终端,执行:【sudo pmset -c hibernatemode 25】 → 此命令让Mac睡眠时写入内存到硬盘,并在断电后仍能恢复;若后续长时间无唤醒,系统可能自动转为关机以保数据,但非严格意义上的闲置触发。











