mac每日23:00自动关机需用sudo pmset repeat shutdown mtwrfsu 23:00:00设置系统级调度,并配合lock-and-shutdown.sh脚本实现强制锁定与关机,或通过快捷指令+自动化在22:55提醒、23:00执行。

你想让Mac在每天晚上11点自动关机,同时确保所有已登录用户会话被强制终止、桌面完全锁定不残留任何可交互界面——这需要组合系统级关机调度与会话管理策略,不能仅靠单一图形界面设置实现。
用终端命令设置每日定时关机(系统级可靠执行)
这一步绕过用户登录状态限制,由launchd守护进程托管,即使无人登录也准时触发关机,真正切断电源。
打开“终端”(Command + 空格 → 输入“终端” → 回车)。
先清空已有重复调度:输入 sudo pmset repeat cancel → 回车 → 输入管理员密码(无字符显示,正常输入)。
设置每天23:00:00关机:输入 sudo pmset repeat shutdown MTWRFSU 23:00:00 → 回车 → 再次输入密码。注意时间必须带秒,格式为HH:MM:SS,否则命令静默失败。
验证是否写入成功:输入 pmset -g sched → 回车,输出中应出现一行含“shutdown”和“23:00:00”的条目。
确保关机前强制锁定所有用户会话
macOS默认关机流程会向当前登录用户发送退出通知,但若用户点击“延迟”或未响应,关机可能被阻塞。要彻底规避此风险,必须在关机命令触发前0.5秒执行会话锁定。
创建一个复合脚本:打开“文本编辑”,新建文件,粘贴以下内容:
#!/bin/sh
osascript -e 'tell application "System Events" to keystroke "q" using {control down, command down}'
sleep 0.5
sudo shutdown -h now
保存为 lock-and-shutdown.sh,存到 /usr/local/bin/ 目录下(需访达显示隐藏文件夹:Command+Shift+.)。
在终端中执行:sudo chmod +x /usr/local/bin/lock-and-shutdown.sh → 回车,赋予可执行权限。
【未执行chmod操作,脚本将无法运行,终端报错“Permission denied”】
用快捷指令替代原生调度(带5分钟前置锁定提醒)
如果你希望关机前有明确视觉提示、且能手动中断流程,这个方法更安全,但依赖用户已登录且Mac未休眠。
方法一:创建带锁定动作的快捷指令
打开“快捷指令”App → 点击右上角“+” → 命名为“Lock & Shutdown” → 添加操作 → 搜索“运行脚本” → 选择Shell → 粘贴:pmset displaysleepnow && sleep 1 && sudo shutdown -h now。
方法二:设置自动化触发
切换到“自动化”标签页 → “创建个人自动化” → 选择“特定时间” → 设定为每天22:55 → 关闭“运行前询问” → 添加操作 → 搜索“显示通知” → 标题填“⚠️ 即将锁定并关机”,正文填“系统将在5分钟后锁定屏幕并关机,请保存所有工作” → 再添加操作 → 选择你刚建的“Lock & Shutdown”指令 → 完成。
这一步的关键是提前5分钟触发:22:55弹窗提醒 → 23:00执行锁定+关机,中间留出用户响应窗口,避免文档丢失。










