2010-09-06 61 views
2

我正在嘗試爲LaunchAgents文件夾創建一個永久運行並每30秒調用一次shell腳本的plist。它開始於一個模板I got here,我試圖根據需要進行裁剪,但它仍然無法正常工作。任何幫助?創建一個定時啓動的plist

<?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.Intel_Watchdog</string> 
    <key>ProgramArguments</key> 
    <array> 
     <string>/Library/A_Intel_WATCHDOG/A_WatchDog.sh</string> 
    </array> 
    <key>StandardErrorPath</key> 
    <string>/dev/null</string> 
    <key>StandardOutPath</key> 
    <string>/dev/null</string> 
    <key>StartInterval</key> 
    <integer>30</integer> 
    <key>RunAtLoad</key> 
    <true/> 
</dict> 
</plist> 

非常感謝!

+0

您能更具體地瞭解發生了什麼問題嗎? – 2010-09-06 17:33:28

+0

@戈登戴維森。簡單地說,它應該每隔30秒運行一次shell腳本。它不會那樣做或其他任何事情。沒有。 – 2010-09-06 17:44:16

回答

1

我把它放在我的LaunchDaemons目錄下,它工作正常。所以,這裏有一些要檢查的東西:

.plist是否被加載?請注意,LaunchAgents文件夾的內容在登錄時加載,因此您需要註銷並重新登錄,或者手動加載launchctl load ~/Library/LaunchAgents/com.Intel_Watchdog.plist(或任何文件所在的位置)。您可以用launchctl list查看它的狀態。

是/Library/A_Intel_WATCHDOG/A_WatchDog.sh可執行文件嗎?檢查系統日誌(/var/log/system.log)以查看launchd是否無法啓動它。

腳本在執行其工作之前是否遇到麻煩?試着在shebang之後添加date >>/tmp/watchdog.log,看看/tmp/watchdog.log中是否有任何內容出現。如果是,請嘗試將StandardErrorPath和StandardOutPath更改爲實際文件,以便在腳本運行時查看發生了什麼。請注意,您將不得不卸載並重新加載.plist以使更改生效(註銷並返回會執行此操作)。

最後,雖然它不應該引起麻煩,但您的標籤不遵循標準慣例(除非您實際擁有域名Intel_Watchdog.com)。如果這是僅供本地使用,請將其命名爲local.Intel_Watchdog。如果您要發佈此項目,則應將標籤基於您擁有的域名(以相反的順序,將「.Intel_Watchdog」添加到最後) - 請參閱Wikipedia's entry on the reverse domain name system

+0

謝謝戈登!其實問題與權限有關。但是這導致了我另一個問題。如果你有興趣,請看看這裏:http://stackoverflow.com/questions/3653827/shell-script-variable-bug – 2010-09-06 19:18:24