2014-09-02 72 views
0

我正在Raspberry Pi上開發一個系統,該系統使用Web界面與它進行交互,並且具有自定義的C++服務器。這個想法是,你只需插入Pi,並且不需要手動啓動服務器。雖然這不是問題,但服務器有時會出現段錯誤。我無法避免它,所以我希望有一個看門狗程序不斷運行來檢查服務器是否已經隔離,如果有,請重新啓動它。我試圖用C語言來查找如何在C中執行此操作,但是我找不到任何有意義的答案。用於服務器的Linux C++看門狗

它不一定是一個C程序,只是有用的東西。它需要在Raspbian上工作(Debian for RPi)

+0

將你的程序作爲'respawn'進程添加到'/ etc/inittab'中。我對Raspbian一無所知,所以我只是留下這個評論。 – indiv 2014-09-02 16:34:42

+0

好吧,那麼我會不得不包含運行級別1(因爲用戶從未登錄?)如果是這樣的話,我想它會看起來像'1:12345:respawn:/ path/to/server'? – Dirk 2014-09-02 16:43:10

+0

是的,這可能會起作用。你只需要在你的系統啓動的運行級別。 – indiv 2014-09-02 17:24:41

回答

1

如果修復了段錯誤,最好。但是,如果目前不可能,請編寫一個腳本,通過調用ps aux |grep nameofyourprogram來檢查正在運行的進程,如果返回沒有再次運行該程序。或者編寫一個程序,如果失敗,會頻繁地嘗試連接到服務器的端口,再次運行服務器。希望這個把戲能幫助!

+0

當然,我想解決它,但它很少出現,因此我無法獲取堆棧跟蹤。我會嘗試腳本 – Dirk 2014-09-02 18:35:39