mac每日自动关机需先退出浏览器再关机,推荐快捷指令方案:新建“夜间清退关机”指令,依次添加applescript退出safari/chrome/edge、10秒等待、关机操作,并设为每天定时自动化。

你想让Mac在每天固定时间自动关机,同时确保Safari、Chrome等浏览器提前退出、不弹窗卡住关机流程——这需要组合应用退出与系统关机两个动作,不能只靠单一设置。
用快捷指令实现“先退浏览器→再关机”全流程
这是最稳妥的图形化方案,全程可视化操作,支持每天重复,且能规避未保存网页导致的关机中断。
第一步:打开“快捷指令”App → 点击右上角“+”新建快捷指令 → 命名为“夜间清退关机”。
第二步:点击“添加操作” → 搜索并添加“运行 AppleScript” → 在脚本框中粘贴以下代码:
osascript -e 'tell application "Safari" to quit' -e 'tell application "Google Chrome" to quit' -e 'tell application "Microsoft Edge" to quit'
第三步:继续点“添加操作” → 搜索“等待” → 设为10秒(给浏览器留出正常退出时间,避免强制杀进程丢数据)。
第四步:再点“添加操作” → 搜索“关机” → 选择该操作 → 点击“下一步” → 关闭“运行前询问”(否则每次都会弹窗打断自动化)。
第五步:回到快捷指令主界面 → 切换到“自动化”标签页 → 点击“创建个人自动化” → 选择“特定时间” → 设定为你想要的关机时刻(例如23:00)→ 开启“重复”并选“每天” → 点击“下一步” → 添加刚才创建的“夜间清退关机”快捷指令 → 完成。
【首次运行需在“系统设置→隐私与安全性→完全磁盘访问”中授权快捷指令】,否则AppleScript无法控制其他应用。
用终端+launchd实现后台静默执行(不依赖登录状态)
如果你常合盖走人、或希望Mac即使无人登录也准时执行,这个方法由系统守护进程托管,更底层可靠。
方法一:准备退出脚本
在终端中执行:nano ~/quit_browsers_and_shutdown.sh
粘贴以下内容并保存(Ctrl+O → 回车 → Ctrl+X):
#!/bin/bash
osascript -e 'tell application "Safari" to quit' \
-e 'tell application "Google Chrome" to quit' \
-e 'tell application "Microsoft Edge" to quit'
sleep 8
sudo shutdown -h now
执行:chmod +x ~/quit_browsers_and_shutdown.sh
方法二:创建launchd任务
执行:nano ~/Library/LaunchAgents/com.user.browser_shutdown.plist
粘贴以下内容(示例设为每天22:45执行):
把其中你的用户名替换成你Mac的账户名(终端输入whoami可查)。
执行:launchctl load ~/Library/LaunchAgents/com.user.browser_shutdown.plist
这一步完成后,任务立即注册生效,无需重启或重新登录。
用系统设置+辅助脚本补位(仅接电源时适用)
如果你坚持用图形界面调度关机,但又怕浏览器拦住关机,可用这个轻量补救法:让系统关机前自动触发退出脚本。
第一步:按常规路径进入“系统设置→电池→定时” → 勾选“设定以下日期的睡眠、重新启动或关机” → 选“关机”,设时间为23:00 → 选“每天” → 点“好”。
第二步:创建一个AppleScript应用,命名为“BrowserKiller”:
打开“脚本编辑器”App → 新建文档 → 粘贴:
on run
tell application "Safari" to quit
tell application "Google Chrome" to quit
tell application "Microsoft Edge" to quit
end run
菜单栏点“文件→导出” → 格式选“应用程序” → 存到“应用程序”文件夹。
第三步:用“访达”右键点击该App → “显示简介” → 勾选“始终允许在后台运行” → 并在“系统设置→隐私与安全性→完全磁盘访问”中添加它。
第四步:用快捷指令创建一个“开机即运行”的自动化:触发条件选“Mac启动时”,操作选“运行脚本”,脚本类型选“应用程序”,然后选中刚导出的BrowserKiller.app。
这样,只要Mac在23:00前已开机,BrowserKiller就已在后台待命;系统关机流程启动时,它会抢先退出浏览器,大幅降低弹窗拦截概率。











