2009-07-26 65 views
2

我想知道如何設置Launchd以重新啓動我的應用程序,如果用戶沒有選擇從頂部欄中選擇「退出」。有些情況下,應用程序可能會發生某些情況,並且可能會強制退出,並且如果選擇了首選項,我希望它自動重新啓動。在發佈之前,我已經仔細研究了它,並且我聽說Launchd會很擅長這樣做。有沒有人有關於如何完成它的任何建議?退出推出重新啓動應用程序

感謝您的任何幫助。

回答

2

讓應用程序運行時,您的程序在用戶的主文件夾中寫入一個空的.something文件。應用程序正常退出時刪除.something文件。 現在,您可以編寫一個腳本(AppleScript或shell腳本)來檢查您的應用程序是否正在運行,以防萬一它應該(通過檢查.something文件)。然後,腳本可以根據需要重新啓動應用程序。 您可以安排腳本在啓動時使用launchd自動運行。

+0

嗨Diederik: 好主意,但我有一個關於這個問題。這個問題是:我應該什麼時候運行腳本?我可以設置它來監視應用程序是否關閉,或類似的東西? – PF1 2009-07-26 19:55:56

+0

該腳本應該始終運行。在腳本中,您應該使用睡眠時間(如Unix睡眠(10)),以便腳本不會使用太多的CPU。除了Launchd之外,您還可以將腳本添加到用戶的登錄項目中,這樣偏好設置只會對當前用戶產生影響(這應該是我猜測的首選方式)。 – diederikh 2009-07-26 20:17:31

2

您可以使用KeepAlive的SuccessfulExit設置僅在未正常退出時重新啓動應用程序。有關詳細信息,請參見this Mac OS X Hints entry和/或launchd.plist手冊頁。