4

我试图弄清楚为什么我的守护程序没有自动启动(在 Mac 10.8.3 上)。但是,它在其他机器上运行良好。这是我在 /Library/LaunchDaemons/ 下的 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.MyApp.tmsm.launcher</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Library/Application Support/MyApp/tmsmLauncher</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <false/>
    <key>StartInterval</key>
    <integer>60</integer>
  </dict>
</plist>

我没有在/var/log/system.log. 我已经检查了permissionownerdaemon. 如果我把我的 plist 放在下面/System/Library/LaunchDaemons/,它可以在之后启动reboot。但这对我来说不是一个好的解决方案。如果我使用“ launchctl load /Library/LaunchDaemons/com.MyApp.tmsm.launcher”,它工作得很好。如果我安装其他作为守护进程的商业软件并且在 下有一个 plist /Library/LaunchDaemons/,它也无法启动。

系统似乎/Library/LaunchDaemons/没有加载任何 plist。我也尝试使用命令“”打开launchctl调试级别launchctl log level debug,但重启后没有更多消息。重启后调试级别是否重置?我可以检查其他日志或配置吗?

谢谢。

4

2 回答 2

4

尝试使用 -w 参数加载它:sudo launchctl load -w /Library/LaunchDaemons/blablabla.plist。看起来像禁用键中的问题。详情见man launchctl

如果这不起作用,我建议您在您的守护进程中启用一些日志记录以查看它是否启动(可能它只是立即退出?)

于 2013-05-29T14:34:18.907 回答
-1

我找到了根本原因......这很愚蠢...... /Library/LaunchDaemons/下我的plist的权限是正确的。但是/Library/LaunchDaemons/的权限被修改为755。这就是为什么在/Library/LaunchDaemons/下注册的任何守护进程都不能自动加载...

于 2013-05-30T10:29:17.877 回答