首页 > 解决方案 > 为什么 LaunchAgents 不能运行我的 Automator 应用程序?

问题描述

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

/图书馆/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

但由于某种原因,该应用程序永远不会运行。

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

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

任何想法为什么 .plist 文件不会做我期望的事情?

标签: macosplistautomatorlaunchd

解决方案


为了查看发生了什么问题,您可以在 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,它现在工作得更好了吗?


推荐阅读