2010-12-07 23 views
3

我已經寫了plist文件,並使其進入/庫/ LaunchDaemons的launchd文件中手動運行,但不會自動

<?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.dotcafe.DCDMySQLBackup</string> 
<key>ProgramArguments</key> 
<array> 
    <string>/Users/robdando/Webserverbackup/grab.sh</string> 
</array> 
<key>StartInterval</key> 
<integer>900</integer> 
</dict> 
</plist> 

我現在已經拿到了劇本,從終端手動檔,但我似乎無法得到它按我的要求每15分鐘運行一次,它所調用的腳本會登錄到ftp服務器上,並下載mysql數據庫的備份。

提前歡呼。

回答

-1

你還沒有指定Program鍵,所以它不能運行任何東西。可能,你想在沒有參數的情況下啓動grab.sh

我想可能會有一些權限問題,因爲您還沒有指定UserName。此外,如果您的.bash_profile導出程序使用的任何環境變量,則在launchd下運行時可能會導致問題。 (假設grab.sh不使用相對路徑)。您可以爲程序創建一個啓動腳本,該腳本加載.bash_profile,然後運行grab.sh

+3

當`Program`不存在時,`launchd`使用`ProgramArguments`數組的第一個元素。 – 2010-12-07 21:48:37

2

您是否將作業加載到正確的launchd?根據你放置文件的位置,看起來你應該在做sudo launchctl load /Library/LaunchDaemons/com.dotcafe.DCDMySQLBackup.plist。之後,你可以sudo launchctl start com.dotcafe.DCDMySQLBackup

我有一個基於日曆的launchd作業沒有運行,當它應該運行時出現問題,即使它在我編輯它時加載並工作正常。我試圖每天以我的用戶身份運行這項工作,所以我的解決方案是將它變成cron工作。

+0

我似乎有一個類似的問題;你有沒有發現它爲什麼沒有在launchd中運行?我有其他計劃的工作可以正常工作,但沒有工作(並且,就像你一樣,它'launchctl開始沒問題)。 – Nathan 2012-09-27 23:23:22

相關問題