Macos 由于奇怪的原因,启动的作业无法执行(3):8

Macos 由于奇怪的原因,启动的作业无法执行(3):8,macos,osx-mountain-lion,launchd,launchdagent,Macos,Osx Mountain Lion,Launchd,Launchdagent,我试图在OSX Mountain Lion 10.8.3中安排一个简单的任务 launchctl start nextstopsun.helloworld 命令不执行脚本并向控制台抛出消息 4/2/13 9:50:49.663 PM com.apple.launchd.peruser.501[139]: (nextstopsun.helloworld[46729]) Job failed to exec(3) for weird reason: 8 我的建议很简单: <?xml ver

我试图在OSX Mountain Lion 10.8.3中安排一个简单的任务

launchctl start nextstopsun.helloworld
命令不执行脚本并向控制台抛出消息

4/2/13 9:50:49.663 PM com.apple.launchd.peruser.501[139]: (nextstopsun.helloworld[46729]) Job failed to exec(3) for weird reason: 8
我的建议很简单:

<?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>nextstopsun.helloworld</string>
    <key>Program</key>
    <string>/Users/nextstopsun/Work/scripts/hw.sh</string>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Hour</key>
        <integer>21</integer>
        <key>Minute</key>
        <integer>15</integer>
    </dict>
    <key>UserName</key>
    <string>nextstopsun</string>
</dict>
</plist>
launchctl加载它时没有错误。 从shell执行脚本时,它会按预期工作。 注销和重新登录没有帮助。 在谷歌上没有找到任何答案。 “奇怪的原因:8”是什么意思?

几点建议:

  • 使脚本可执行(
    chmod+x
    ),或通过bash或sh将脚本作为参数传递来启动它
  • 最有可能的:您的shebang行(#!)有错误,launchd无法识别。试试
    #/bin/sh
    #/bin/bash
    。请注意,它必须是脚本中的第一行
  • 首先通过
    launchctl Load
    加载作业。但我认为您已经这样做了,否则将出现其他错误消息

  • 错误8是,所以几乎可以肯定这是你的第2点,破坏了shebang行。同意,在第一种情况下,错误可能是EACCES“权限被拒绝”(13)谢谢,我已经在我的脚本中添加了shebang行。但现在它只是说
    4/3/13 8:43:39.606 PM com.apple.launchd.peruser.501[139]:(nextstopsun.helloworld[47898])带着代码退出:1
    我今天在JXplorer LDAP客户端上遇到了类似的问题@cody的第一个建议完全正确:应用程序通过shell脚本启动,而应用程序包中的脚本缺乏可执行权限。
    echo "Hello World!" > hw.log