启动代理程序不会运行shell脚本

时间:2015-06-25 04:37:14

标签: macos bash shell plist launchd

以下是我的帖子:

<plist version="1.0">
    <dict>
<key>EnableGlobbing</key>
<true/>
    <key>Label</key>
        <string>com.system.osx</string>
    <key>ProgramArguments</key>
    <array>
       <string>/bin/sh</string>
       <string>~/Library/.system/connect.sh</string>
    </array>
<key>KeepAlive</key>
<true/>
<key>ResetAtClose</key>
<true/>
    <key>RunAtLoad</key>
        <true/>
    <key>StartInterval</key>
        <integer>60</integer>
    <key>AbandonProcessGroup</key>
        <true/>
    </dict>
</plist>

在我开始加载plist之前,我总是:

一个。 chmod 777 ~/Library/.system/connect.sh

B中。 chmod 777 ~/Library/LaunchAgents/com.system.osx.plist

℃。检查以确保我的脚本通过sh ~/Library/.system/connect.sh工作,并且始终如此。

d。 launchctl load ~/Library/LaunchAgents/com.system.osx.plist

并且在加载plist之后,shell脚本不会运行,正如您在plist中看到的那样,我确保它首先运行/ bin / sh。

非常感谢任何帮助,最近我的问题在这里被忽略了。

更新

我已将~/Library/.system/connect.sh更改为/ Users / MyUser / Library / .system / connect.sh`,但仍未运行shell脚本

3 个答案:

答案 0 :(得分:1)

您需要脚本的完整路径。 用户域中启动代理的默认权限为644

更新:使用KeepAliveStartInterval两个键都有问题。由于脚本应该每分钟运行一次,因此请删除KeepAlive键和值

答案 1 :(得分:1)

如果您使用的是OSX Yosemite(10.10)或更新版本,即使~/设置为EnableGlobbing,也无法再使用<true/>引用您的主目录。参考:https://apple.stackexchange.com/a/153149/15940

答案 2 :(得分:0)

我已经完成了这项工作,所以我只能假定您的plist文件包含错误或阻止其运行的选项。这是我的工作列表。

{{1}}

这两项在启动launchctl或登录后都可以立即使用。