mac 上 automator 应用监控本质是借助系统能力实现轻量响应式判断,通过 applescript 获取状态并封装为工作流,支持检测运行、重启无响应app、文件夹触发及日历定时检查。
mac 上用 automator 做应用状态监控,本质不是实时“进程级轮询”,而是借助系统能力做轻量、响应式、低开销的判断与反馈。它不替代 top 或 launchd,但能快速实现:某个 app 是否已启动、是否卡死、是否长时间无响应、是否该被重启——全部不用写代码。
核心思路是:用 AppleScript 获取应用状态 + Automator 封装为可触发/可定时的工作流
一、检测指定应用是否正在运行
这是最基础也最常用的状态检查。
- 新建一个 Automator 文稿,类型选 “工作流”(临时执行)或 “应用程序”(双击即查)。
- 拖入「运行 AppleScript」动作。
- 粘贴以下脚本(以 Chrome 为例,可替换成任意 App 名):
on run {input, parameters}
set appName to "Google Chrome"
tell application "System Events"
if (name of processes) contains appName then
display notification "✅ " & appName & " 正在运行" with title "应用监控"
return true
else
display notification "❌ " & appName & " 未运行" with title "应用监控"
return false
end if
end tell
end run
✅ 效果:运行后弹出通知,直观反馈状态
⚠️ 注意:App 名必须和「活动监视器」中显示的进程名一致(如 Microsoft Edge 是 Microsoft Edge,Notion 是 Notion,而非 .app 文件名)
二、自动重启无响应的应用
当某个 App 在「活动监视器」里显示“(无响应)”,Automator 可配合 AppleScript 强制退出并重新打开。
- 新建「应用程序」类型 Automator 文稿。
- 添加两个「运行 AppleScript」动作(顺序执行):
第一个脚本(强制退出):
tell application "System Events"
if exists process "Obsidian" then
tell application "Obsidian" to quit
delay 1
end if
end tell
第二个脚本(重新启动):
tell application "Obsidian"
activate
end tell
? 保存为 重启 Obsidian.app,双击就执行一次“退出+重开”。也可绑定到快捷键或日历提醒中定时运行。
三、结合文件夹操作,实现“App 启动即触发”
比如你希望:只要 Slack.app 被拖进「Applications」文件夹,就自动检查是否已登录、是否开启通知——这种“零触达响应”可用「文件夹操作」实现。
- 新建 Automator 文稿,选择 “文件夹操作”。
- 绑定文件夹:
/Applications(需解锁权限,首次可能提示)。 - 拖入「过滤 Finder 项目」,设条件为「文件名」包含
Slack。 - 接着拖入「运行 AppleScript」,脚本内可调用
do shell script "open -a Slack"或检查其偏好设置文件是否存在(如~/Library/Preferences/com.tinyspeck.slackmacgap.plist)。
? 这种方式适合部署环境初始化、新设备交付后的自动校验。
四、用日历 + Automator 实现定时健康检查
每天上午 9:00 自动检查 Zoom、Teams、Calendar 三个关键应用是否存活,并发通知。
- 在 Automator 中新建「文稿」→ 类型选 “工作流”。
- 加入三个「运行 AppleScript」动作,每个检查一个 App(参考第一部分脚本)。
- 保存为
每日应用健康检查.workflow,路径必须是:~/Library/Workflows/Applications/Calendar/ - 打开「日历」App → 新建事件 → 设置重复(每天)→ 提醒方式选「自定义」→ 「运行工作流」→ 选中刚保存的 workflow。
⏰ 系统会在设定时间自动运行整个检查流程,无需保持 Automator 开着。
不需要后台常驻、不消耗 CPU、不依赖第三方工具——这就是 macOS 原生自动化监控的实用边界。重点不在“多快”,而在“刚好够用、稳定可靠、一劳永逸”。











