launchd没有启动我的守护进程

时间:2013-05-29 09:11:34

标签: macos launchd daemons

我正在试图找出为什么我的守护进程不会自动启动(在Mac 10.8.3上)。但是,它在其他机器上运行良好。这是我的plist / 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.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中没有看到任何错误消息。我查看了permission的{​​{1}}和owner。如果我将我的plist放在daemon下,则可以在/System/Library/LaunchDaemons/之后启动它。但对我来说这不是一个好的解决方案。如果我使用“reboot”,它运作良好。如果我安装了其他商业软件,这是一个守护进程并在launchctl load /Library/LaunchDaemons/com.MyApp.tmsm.launcher下有一个plist,它也无法启动。

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

感谢。

2 个答案:

答案 0 :(得分:4)

尝试使用-w参数加载它:sudo launchctl load -w /Library/LaunchDaemons/blablabla.plist。在Disabled键中看起来像问题。有关详细信息,请参阅man launchctl

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

答案 1 :(得分:0)

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