2017-10-16 143 views
0

我正在使用Raspberry PI來自動執行設備。我需要我的控制檯應用程序(用C++編寫)在Raspberry上工作多年,無需人工。所以我設置了每天重新啓動的看門狗,並在autorun中運行我的應用程序。自動重啓linux控制檯應用程序

但我的應用程序可能會崩潰。我無法揭示原因,需要快速重啓。什麼方式將是最好的?也許我可以寫一個「父」-app,並把我當作一個線程來調用它,並控制它的工作(但它也可能崩潰)?或者也許有一個現存的守護進程來做到這一點?或者,也許有人知道,如何編寫Phyton應用程序來執行此操作,並在啓動時運行它?

+0

創建一個服務,讓init.d處理它。寫一個包裝器來嘗試並在已經存在的時候重新啓動它是沒有意義的! – UKMonkey

回答

0

不一定回答這個問題,但我認爲更好的方法是使用經過測試的實用程序(如「cron」)安排每日重新啓動。

0

保持運行的程序,如果它是容易崩潰是很容易的,只需使用shell腳本:

while true; do /bin/my_app; done 

然而,這整個的做法不會有任何幫助,如果應用程序以某種方式失敗沒有關閉流程。在這種情況下,通常會爲應用程序提供一些可以探測的外部訪問點(例如HTTP服務器)。然後,其他一些過程會定期進行探測,如果程序沒有及時響應,則會終止程序。對於這種事情,有一些非常複雜的框架,但是,這種類型的簡單功能可以用shell腳本來實現。

相關問題