mac每日23:00准时关机需协同系统调度与雷电设备安全卸载:先通过系统设置→电池/节能器→定时设关机(须接电源),再用终端命令sudo kextunload -b com.apple.driver.applethunderboltnhi && sudo shutdown -h 23:00实现先卸载后关机;或用快捷指令+applescript导出应用卸载雷电、弹窗提醒、5分钟后关机,并设自动化于22:55触发。

你想让Mac在每天23:00准时关机,同时确保雷电接口(Thunderbolt)在关机前完成安全断开,避免外接显示器、高速存储或扩展坞因强制断电导致数据损坏或设备识别异常——这需要分两步协同:系统级关机调度 + 雷电设备预卸载。
通过系统设置安排每日固定时间关机
这是最直观的图形化路径,全程鼠标操作,但【必须连接电源适配器】,否则MacBook在电池供电时会跳过关机转为睡眠,雷电设备也无法被主动卸载。
点击屏幕左上角苹果菜单 → 选择“系统设置”。
左侧边栏中,MacBook用户点“电池”,iMac/Mac Studio用户点“节能器”。
向右滚动到底部,点击右下角的“定时”按钮。
勾选“设定以下日期的睡眠、重新启动或关机”,右侧下拉菜单务必选择“关机”,输入时间(例如23:00),重复周期选“每天”,点击“好”保存。
用终端命令触发雷电设备安全卸载再关机
系统设置本身不干预硬件卸载流程,雷电设备需在关机前由内核主动解除绑定。直接关机会让设备处于未通知断连状态,可能引发下次唤醒时识别失败或菊花轮卡顿。以下命令组合可实现“先卸载→再关机”:
打开“终端”(Command + 空格,输入“终端”回车)。
粘贴执行以下完整命令:
sudo kextunload -b com.apple.driver.AppleThunderboltNHI && sudo shutdown -h 23:00
该命令分两段:前半段强制卸载雷电主机控制器驱动(NHI),使所有下游设备进入安全离线状态;后半段设定今晚23:00关机。注意:kextunload操作需管理员权限,输入密码时无字符显示,属正常现象。
若你希望每天固定执行而非仅今晚,改用pmset方式替代shutdown:
sudo pmset repeat shutdown MTWRFSU 23:00:00
但pmset不支持前置脚本,因此需另建自动化任务——见下一节。
用快捷指令+AppleScript实现“卸载雷电→弹窗提醒→关机”全流程
如果你需要关机前5分钟弹出全屏提醒、手动确认是否保存文档,并确保雷电设备已安全断开,这个方法最稳妥。它绕过终端密码限制,且所有动作都在用户登录态下执行,兼容性最强。
方法一:创建卸载雷电的AppleScript
打开“脚本编辑器”App → 新建文稿 → 粘贴以下内容:
do shell script "kextunload -b com.apple.driver.AppleThunderboltNHI" with administrator privileges
点击“文件” → “导出”,格式选“应用程序”,保存为“Unload Thunderbolt.app”,位置建议放在“应用程序”文件夹内。
方法二:在快捷指令中串联动作
打开“快捷指令”App → 点右上角“+”新建 → 命名“雷电安全关机”。
点击“添加操作” → 搜索“运行快捷指令” → 选择“运行应用程序” → 点击“选取”,找到并选中刚才导出的“Unload Thunderbolt.app”。
继续添加操作 → 搜索“显示通知” → 标题填“雷电设备已卸载”,消息填“5分钟后自动关机,请确认文档已保存”。
再添加“等待”操作 → 设为300秒(5分钟)。
最后添加“关机”操作 → 点击“下一步” → 关闭“运行前询问”以静默执行。
方法三:设置自动化触发
切换到“自动化”标签页 → “创建个人自动化” → 选择“特定时间” → 设定为每天22:55 → 关闭“运行前询问” → 点击“下一步” → 添加操作 → 搜索并选择“运行快捷指令” → 找到并选中“雷电安全关机” → 完成。











