2014-09-04 263 views
0

我幾乎沒有使用OS X中的守護進程的經驗,但設法運行一次,每60秒反覆運行一次php文件。它似乎運作良好,並且會一次運行幾周而沒有問題。然而,偶爾它會停止工作,因爲我無法弄清楚。發生這種情況後,我的守護進程將不再列在launchctl列表中。如果我運行launchctl start,它將再次開始工作,沒有任何問題。LaunchDaemon意外退出

我該如何解決這個看似隨機關機的原因? 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

的launchd將管理守護程序的列表,如果它退出到常與非零狀態代碼刪除守護進程。因此,您需要檢查您的PHP腳本,並確保它始終以零狀態代碼退出,即使在網絡或數據庫故障的情況下也是如此。

+0

謝謝!當它無法連接到遠程API時,我的php腳本會超時,導致你描述的完全一樣。 – 2014-09-13 00:14:37