我正在试图找出为什么我的守护进程不会自动启动(在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调试级别,但重启后没有更多消息。重启后调试级别是否重置?我可以查看其他日志或配置吗?
感谢。
答案 0 :(得分:4)
尝试使用-w参数加载它:sudo launchctl load -w /Library/LaunchDaemons/blablabla.plist
。在Disabled键中看起来像问题。有关详细信息,请参阅man launchctl
。
如果这不起作用,我建议您在守护进程中启用一些日志记录,以查看它是否启动(可能只是立即退出?)
答案 1 :(得分:0)
我找到了根本原因......这是非常愚蠢的...... 我的plist在/ Library / LaunchDaemons /下的权限是正确的。但是,/ Library / LaunchDaemons /的权限被修改为755.这就是为什么在/ Library / LaunchDaemons /下注册的任何守护进程都无法自动加载...