可通过三种方法实现macOS应用定时关闭:一、快捷指令+AppleScript每日自动执行killall;二、launchd守护进程后台定时杀进程,不依赖用户登录;三、AppleScript应用绑定日历事件触发,支持人工确认。

如果您希望 macOS 上的特定应用在指定时间自动关闭,而非整机关机,则需借助系统自动化工具实现进程级控制。以下是解决此问题的步骤:
一、使用快捷指令创建应用定时关闭自动化
该方法通过“快捷指令”应用触发 AppleScript 脚本,在设定时间点强制退出指定应用程序,无需终端权限,且支持每日重复执行。
1、打开“快捷指令”应用,切换到“自动化”标签页。
2、点击“创建个人自动化”,选择“特定时间”作为触发条件。
3、设定目标时间(例如 22:00),开启“重复”选项并选择“每天”。
4、点击“下一步”,然后点击“添加操作”,搜索并选择“运行AppleScript”。
5、在脚本编辑框中粘贴以下代码:
try
do shell script "killall 'Safari'"
on error
display alert "Safari 未运行或已关闭"
end try
6、将代码中的 Safari 替换为您要关闭的应用名称(如 Chrome、WeChat),注意保持单引号包裹。
7、关闭“运行前询问”开关,点击“完成”保存自动化。
二、使用终端命令配合 launchd 实现后台定时杀进程
该方法通过创建自定义 launchd 守护进程,在系统级后台按固定时间执行 killall 命令,不依赖用户登录状态,适合长期稳定运行。
1、打开“终端”应用。
2、输入以下命令创建 plist 文件:
touch ~/Library/LaunchAgents/com.user.appquit.plist
3、使用 nano 编辑该文件:
nano ~/Library/LaunchAgents/com.user.appquit.plist
4、粘贴以下内容(以关闭 Microsoft Outlook 为例):
olor:#f60; text-decoration:underline;" title= "apple" href="https://www.php.cn/zt/19200.html" target="_blank">apple.com/DTDs/PropertyList-1.0.dtd">
5、将 Microsoft Outlook 替换为目标应用名称,确保与“活动监视器”中显示的进程名完全一致。
6、按 Control+O 保存,Control+X 退出 nano。
7、加载该任务:
launchctl load ~/Library/LaunchAgents/com.user.appquit.plist
三、使用 AppleScript 应用程序结合 iCal 日历事件触发
该方法利用 macOS 日历的“警报”功能调用已编译的 AppleScript 应用,在指定时间弹出提示后自动终止目标应用,适合需要人工确认或临时启用的场景。
1、打开“脚本编辑器”应用(位于“应用程序→实用工具”中)。
2、输入以下脚本:
on run
try
do shell script "killall 'Notes'"
on error errMsg
display notification errMsg with title "应用关闭失败" end try
end run
3、将 Notes 替换为您要关闭的应用名称。
4、点击菜单栏“文件→导出”,格式选择“应用程序”,保存至“应用程序”文件夹,命名为“Quit Notes.app”。
5、打开“日历”应用,新建一个日历事件,设定时间为期望关闭时刻。
6、点击事件详情中的“提醒”,选择“自定”,再点击“添加提醒”,选择“打开文件”,浏览并选中刚导出的 Quit Notes.app。
7、保存事件,系统将在设定时间自动运行该应用并终止目标进程。










