如何使用LaunchDaemons(launchd)启动Program.app?

时间:2013-08-08 19:58:06

标签: macos launchd

我在文件夹中放置了以下 com.apple.test.plist 文件:

  

/系统/库/ LaunchDaemons

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>com.apple.Spotlight</string>
        <key>ProgramArguments</key>
        <array>
            <string>/Users/todd/Dropbox/client/CLIENT.BUILDS/MAC/v0.1/ApplicationTest.app</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
</dict>
</plist>

但由于某些原因,当我使用我的用户todd登录时,ApplicationTest.app无法启动。

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

密钥ProgramArguments需要一个可执行文件,但是您提供了一个应用程序包,它是一个美化的目录。要启动应用程序,您必须将launchd指向bundle中的可执行文件:

<key>ProgramArguments</key>
<array>
<string>/Users/todd/Dropbox/client/CLIENT.BUILDS/MAC/v0.1/ApplicationTest.app/Contents/MacOS/ApplicationTest</string>
</array>

或者使用open(1)命令运行应用程序:

<key>ProgramArguments</key>
<array>
<string>/usr/bin/open</string>
<string>-W</string>
<string>/Users/todd/Dropbox/client/CLIENT.BUILDS/MAC/v0.1/ApplicationTest.app</string>
</array>