Bash 发射夹板不工作

Bash 发射夹板不工作,bash,active-directory,sh,osx-mountain-lion,launchd,Bash,Active Directory,Sh,Osx Mountain Lion,Launchd,编辑:似乎我在控制台中遇到了一个错误 com.apple.launchd:(com.xxxx.adbind[57])退出,代码:1 这到底是什么意思 还有,;如果我使用launchctl命令加载登录的launchd plist文件,它工作正常 我想弄明白为什么我的launchd不起作用,这让我自己都快发疯了。我在Mountain Lion 10.8.2中使用它,当我使用launchctl手动启动它时,它说它已加载,但脚本未运行。手动运行时,脚本也可以正常工作。也许它只是需要一双更好的眼睛来观察我

编辑:似乎我在控制台中遇到了一个错误 com.apple.launchd:(com.xxxx.adbind[57])退出,代码:1

这到底是什么意思

还有,;如果我使用launchctl命令加载登录的launchd plist文件,它工作正常

我想弄明白为什么我的launchd不起作用,这让我自己都快发疯了。我在Mountain Lion 10.8.2中使用它,当我使用launchctl手动启动它时,它说它已加载,但脚本未运行。手动运行时,脚本也可以正常工作。也许它只是需要一双更好的眼睛来观察我在做什么

首先,我将解释我试图实现的目标。我有大约400台计算机在现场外成像。我需要这些计算机绑定到AD,这不能在我们的网络之外完成。我想通过在启动时运行启动脚本来调用脚本,然后在运行之前检查脚本是否在网络中,我可以在广告用户登录之前在网络中的第一次启动时将这些计算机绑定

这是我的launchd,我把它放在/Library/launchDaemons中

<?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.xxxx.adbind</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/adbind.bash</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>WorkingDirectory</key>
    <string>/usr/local/bin</string>
</dict>
</plist>

谢谢你的帮助

我终于解决了我的问题,找到了解决办法!我将把答案贴在这里,希望有一天能帮助别人!似乎启动文件的运行时间不足以运行我的整个脚本。因此,我将KeepAlive键添加到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.xxxx.adbind</string>
    <key>KeepAlive</key>
    <dict>
        <key>SuccessfulExit</key>
        <false/>
    </dict>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/adbind.bash</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

退出代码1表示脚本退出时出现错误。如果它以0退出,则表示没有错误

嗯,我终于解决了我的问题,找到了解决办法!我将把答案贴在这里,希望有一天能帮助别人!似乎启动文件的运行时间不足以运行我的整个脚本。因此,我将KeepAlive键添加到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.xxxx.adbind</string>
    <key>KeepAlive</key>
    <dict>
        <key>SuccessfulExit</key>
        <false/>
    </dict>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/adbind.bash</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>
sudo chown root:wheel bin
sudo chown root:wheel adbind.bash
sudo chmod 755 adbind.bash
sudo chown root:wheel com.xxxx.adbind.plist
sudo chmod 755 com.xxxx.adbind.plist