mac可通过快捷指令或launchd实现应用退出后自动关机:快捷指令用applescript轮询检测进程退出并触发关机,需配置正确进程名和系统权限;launchd则通过plist文件以守护进程方式更可靠地监控并执行关机。

你想让Mac在某个特定应用(比如优酷客户端、微信下载完视频、或Final Cut Pro导出完成)退出后立刻关机,避免手动操作遗漏——这无法靠系统“定时关机”实现,但可通过快捷指令监听进程状态变化并触发关机动作。
用快捷指令监听App退出并自动关机
该方法不依赖终端命令,全程图形化操作,适合日常使用;关键在于用AppleScript轮询检测目标App是否已退出,一旦确认就执行关机,整个过程无需人工干预。
第一步:打开“快捷指令”App → 点击右上角“+”新建快捷指令 → 命名为“App退出后关机” → 点击“添加操作”。
第二步:搜索并添加“运行 AppleScript”操作 → 在脚本框中粘贴以下代码:
repeat
set appRunning to false
try
set appRunning to (application "WeChat" is running)
end try
if appRunning is false then exit repeat
delay 5
end repeat
osascript -e 'tell app "System Events" to shut down'
第三步:把【WeChat】替换成你要监控的应用名,必须与“活动监视器”中显示的**完整进程名完全一致**(大小写敏感、含空格需保留),例如:"Final Cut Pro"、"优酷"、"Microsoft Outlook";若名称含中文,确保系统语言环境支持,否则脚本会静默失败。
第四步:点击右上角“…”,开启“运行前询问”开关 → 保存。首次运行时系统会弹出权限请求,必须勾选“快捷指令”→“控制你的电脑”,否则无法调用关机指令。
用launchd配置后台守护进程精准响应
此方法适用于需要100%可靠触发的场景,比如你常在下班前启动渲染任务,希望Final Cut Pro一退出就断电,且不关心当前是否登录、屏幕是否锁定;它由系统级守护进程管理,不依赖快捷指令App是否打开。
方法一:创建plist配置文件
打开“终端”,依次执行:
mkdir -p ~/Library/LaunchAgents
nano ~/Library/LaunchAgents/com.user.appquit-shutdown.plist
粘贴以下内容(以监控“优酷”为例):
按 Ctrl+O 回车保存 → Ctrl+X 退出 → 执行:
launchctl load ~/Library/LaunchAgents/com.user.appquit-shutdown.plist
【注意:WatchPaths仅监控路径存在性,不能实时捕获进程退出;本例实际依赖脚本内主动调用quit再延时关机,确保App真正终止】
手动触发式验证与应急中止
当你不确定自动化是否生效,或想临时跳过关机流程,可用这个带确认的快捷指令快速测试。
新建一个快捷指令,命名为“手动检查优酷并关机”。
添加操作:“运行 AppleScript”,脚本为:
set appName to "优酷"
if application appName is running then
display alert "检测到" & appName & "仍在运行,是否强制退出并关机?" buttons {"取消", "确定"} default button "确定"
if button returned of result is "确定" then
do shell script "osascript -e 'tell application \"" & appName & "\" to quit' && sleep 2 && osascript -e 'tell app \"System Events\" to shut down'"
end if
else
display notification "未检测到" & appName & ",准备关机" with title "自动关机流程启动"
do shell script "osascript -e 'tell app \"System Events\" to shut down'"
end if
点击右上角“…”,选择“添加到主屏幕” → 回到桌面即可一键点开验证逻辑是否通路。











