为什么 LaunchAgents 运行 我的 Automator 应用程序没有?

Why won't LaunchAgents run my Automator app?

我想 运行 我每 5 分钟通过 Automator 创建的应用程序,所以我将以下 com.user.wilson.plist 文件放在这个文件夹中:

/Library/LaunchAgents

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.user.wilson</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/open</string>
        <string>-a</string>
        <string>/Users/paul/Documents/Wilson/Script/mt-wilson-background_app</string>
    </array>
   <key>StartInterval</key>
   <integer>300</integer>
</dict>
</plist>

然后,我在终端中使用以下命令加载它:

launchctl load Library/LaunchAgents/com.user.wilson.plist

但由于某种原因,该应用程序从未 运行s。

但是,我可以使用此命令成功 运行 应用程序:

/usr/bin/open -a /Users/paul/Documents/Wilson/Script/mt-wilson-background_app

知道为什么 .plist 文件不符合我的预期吗?

为了查看出了什么问题,您可以像这样在您的 plist 中添加一个日志文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.user.wilson</string>
    <key>StandardErrorPath</key>
    <string>/Users/paul/Documents/Wilson/Script/err.log</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/open</string>
        <string>-a</string>
        <string>/Users/paul/Documents/Wilson/Script/mt-wilson-background_app</string>
    </array>
   <key>StartInterval</key>
   <integer>300</integer>
</dict>
</plist>

注意:为使修改生效,卸载并重新加载:

launchctl unload Library/LaunchAgents/com.user.wilson.plist
launchctl load Library/LaunchAgents/com.user.wilson.plist

通常,如果 err.log 说找不到您的应用,则表示这是一个权限问题。

我建议您尝试将您的应用程序从 /Users/paul/Documents/Wilson/Script/mt-wilson-background_app 移动到 /Users/paul/Documents/mt-wilson-background_app

然后相应地更新你的 plist,卸载并重新加载你的 plist,它现在工作得更好了吗?

我 运行 遇到了几乎完全相同的问题。我终于(终于!!!)找到了对我有用的治疗方法。

最初,无论我尝试什么都不会 运行 的 .plist 启动代理的损坏版本在 /Library/LaunchAgents 中。 将代理移动到 /Users/[me]/LaunchAgents 消除了“Application Not 运行”错误。

这似乎违反直觉,因为根代理应该能够从任何位置 运行 一切,但我只能猜测 AppleScript 检查应用程序是否 运行ning 是用户account-dependent 不知何故。我敢打赌,您可以在 AppleScript 中添加一些东西来以“正确”的方式实际解决这个问题,但这对我来说效果很好,所以我赢了。