必须严格使用“HH:MM:SS”七位英文格式(如23:00:00),禁用中文冒号、空格或毫秒;需确保键盘为英文输入法,且Mac已连接原装电源适配器,同时终端须获“完全磁盘访问权限”,否则pmset命令将静默失败或报invalid argument。

你想让Mac在每天晚上11点自动关机,却在终端执行sudo pmset repeat shutdown后报错,或快捷指令运行时弹出“权限被拒绝”“命令未找到”“调度失败”等提示——这不是配置遗漏,而是系统在关机链路的某个环节主动拦截了请求。
终端执行pmset命令报错:invalid argument或静默失败
这类错误几乎都源于时间格式不合规。macOS对pmset repeat的时间字段极其敏感,必须严格满足“HH:MM:SS”七位字符且不含空格,少一位、多一位、用中文冒号、加毫秒都会导致命令直接退出,不报错也不写入计划。
输入sudo pmset repeat shutdown MTWRFSU 23:00:00→ 回车;若仍失败,先确认当前键盘输入法为英文,再检查是否误按了Shift导致冒号变成中文全角符号。
验证是否真的失败:执行pmset -g sched→ 回车,输出为空则说明没写入;若有内容但不含shutdown和23:00:00,说明格式错误已被系统忽略,而非报错提示。
【必须带秒,且只能是00、30等整数秒,不能写23:00】
快捷指令自动化执行失败:无反应或跳过
快捷指令的定时关机依赖两个硬性前提:用户已登录 + Mac未处于睡眠状态。如果23:00时你的Mac正黑屏休眠,这个自动化将彻底跳过,不会唤醒设备,也不会留下任何日志。
打开“快捷指令”App → 进入“自动化”标签页 → 找到你的关机自动化 → 点击右侧“…”,关闭“运行前询问” → 再点击“重复”开关确保开启 → 检查触发时间是否设为23:00(注意是24小时制)。
若仍不触发,在“系统设置→节能器→调度”中确认没有其他同时间的图形界面关机计划冲突——两个关机指令同时注册会导致后者被系统静默丢弃。
执行shutdown命令提示Permission denied
这是脚本文件缺少执行权限的典型表现。当你把lock-and-shutdown.sh保存到/usr/local/bin/后,终端默认只认它为普通文本,不会当作可执行程序调用。
在终端中输入:sudo chmod +x /usr/local/bin/lock-and-shutdown.sh→ 回车。
这一步不可跳过。未执行该命令,后续任何调用该脚本的操作都会返回Permission denied,且不会提示你缺权限,只会卡在命令行光标处不动。
系统设置里设好调度却到点不关机
图形界面设置的关机调度有一个隐蔽限制:它只在Mac接通电源适配器时才可靠触发。电池供电状态下,部分M系列机型会转为深度睡眠而非真正断电,外观上像关机,实则后台仍在耗电。
点击左上角苹果菜单 → “系统设置” → 左侧选“电池” → 向下滚动到底部 → 点击“调度” → 确认右下角显示“已启用”且时间正确 → 拔掉电源线测试一次:若此时调度灰显或无法勾选,说明该计划已失效,必须插电重设。
【必须连接电源适配器才能可靠触发关机】
关机前卡在“正在退出应用程序”界面不动
系统等待前台应用响应退出信号,而某个程序(如Chrome未关闭标签页、Final Cut Pro正在渲染缓存)未及时释放资源,就会阻塞整个关机流程,表现为屏幕冻结在灰色退出提示界面,风扇持续运转。
第一步:重启Mac,进入“系统设置→登录项”,禁用所有非必要开机自启应用;
第二步:打开“终端”,输入sudo pmset -a closefiles 1→ 回车,强制系统在关机前关闭所有未响应的文件句柄;
第三步:回到“系统设置→隐私与安全性→完全磁盘访问”,确认“终端”已勾选——否则pmset命令将因权限不足而静默失败。


















