macOS实现特定应用定时关闭有四种方案:一、Automator创建快速操作并设快捷键;二、用launchd配置plist实现精准定时;三、编写.command脚本配合crontab;四、导出AppleScript为Dock应用程序。

如果您希望在 macOS 上实现特定应用程序的定时关闭,而非整机关机或睡眠,则需借助系统内置工具与脚本能力组合实现。以下是多种可独立使用的具体方案:
一、使用 Automator 创建“退出指定应用”工作流程
该方法通过图形化自动化工具构建可重复执行的退出指令,无需编码基础,适用于固定应用列表的定时退出场景。
1、打开“自动操作”(Automator)应用,位于“应用程序”文件夹中。
2、在新建文档窗口中选择“快速操作”模板,点击“选取”。
3、在右侧操作库搜索栏输入“运行 AppleScript”,将该操作拖入工作流区域。
4、在 AppleScript 编辑框中粘贴以下代码(以退出 Safari 和 Chrome 为例):
on run {input, parameters}
tell application "Safari" to quit
tell application "Google Chrome" to quit
end run
5、点击菜单栏“文件”→“存储”,命名为“退出浏览器”,保存类型为“快速操作”。
6、前往“系统设置”→“键盘”→“快捷键”→“快速操作”,勾选刚保存的“退出浏览器”,并为其分配快捷键(如 ⌘⌥Q)。
二、使用终端命令配合 launchd 实现精准定时关闭
launchd 是 macOS 原生守护进程管理器,支持毫秒级精度触发,适合对时间敏感的应用退出任务,且不依赖用户登录状态(需配置为用户级代理)。
1、在终端中执行:mkdir -p ~/Library/LaunchAgents
2、创建 plist 文件:nano ~/Library/LaunchAgents/com.user.quitapp.plist
3、粘贴以下内容(示例:每天 22:30 退出 Slack):
olor:#f60; text-decoration:underline;" title= "apple"href="https://www.php.cn/zt/19200.html" target="_blank">apple.com/DTDs/PropertyList-1.0.dtd">
4、保存后执行:launchctl load ~/Library/LaunchAgents/com.user.quitapp.plist
5、验证是否加载成功:launchctl list | grep quitapp
三、编写 .command 脚本并配置定时执行
该方式将 AppleScript 封装为双击可运行的 shell 脚本,结合系统定时功能(如 crontab 或 pmset),适合临时性或测试用途,且支持终端内直接调试。
1、用文本编辑器新建文件,保存为 quit-apps.command,内容如下:
#!/bin/bash
osascript -e 'tell application "Mail" to quit'
osascript -e 'tell application "Notes" to quit'
exit 0
2、在终端中赋予执行权限:chmod +x ~/Desktop/quit-apps.command
3、测试运行:./~/Desktop/quit-apps.command
4、设置每日定时(例如每天 23:00):echo "0 23 * * * /Users/yourname/Desktop/quit-apps.command" | crontab -(请将 yourname 替换为实际用户名)
5、确认 crontab 已写入:crontab -l
四、利用 AppleScript 应用程序 + Dock 快速触发
将 AppleScript 导出为独立应用程序,可置于 Dock 或桌面,单击即执行退出动作,适用于需人工确认时机但希望一键完成的场景。
1、打开“脚本编辑器”,粘贴以下代码(支持多应用并行退出):
set appList to {"Preview", "TextEdit", "iTerm2"}
repeat with appName in appList
try
tell application appName to quit
end try
end repeat
2、点击“文件”→“导出”,格式选择“应用程序”,勾选“显示启动屏幕”(可选),保存至“应用程序”文件夹。
3、在 Finder 中找到刚保存的应用,右键→“在访达中显示”,拖拽图标至 Dock 栏。
4、单击 Dock 中该图标,即可立即退出所列全部应用。
5、如需修改目标应用,重新打开该应用的包内容 → 显示包内容 → Contents → Resources → Scripts → 双击 script.scpt 编辑后保存。










