我几乎没有在OS X中使用Daemons的经验,但设法得到一个运行,每60秒重复运行一个php文件。它似乎运作良好,并且可以一次运行几周而没有任何问题。但是,偶尔它会因为我无法弄清楚的原因而停止工作。发生这种情况后,我的守护进程将不再列在launchctl列表中。如果我运行launchctl start,它将重新开始工作,没有任何问题。
我如何才能找出这种看似随机关机的原因? php文件用于从在线API请求数据,并使用检索到的信息更新MySQL数据库。
以下是我的plist文件的内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>mschirma.automator</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/php</string>
<string>/Library/WebServer/Documents/automator/time_log.php</string>
</array>
<key>StartInterval</key>
<integer>60</integer>
</dict>
</plist>
由于
答案 0 :(得分:0)
Launchd将从托管守护程序列表中删除守护程序,如果它通常使用非零状态代码退出。因此,您需要检查PHP脚本并确保它始终以零状态代码退出,即使网络或数据库发生故障也是如此。