沒有任何人敢保證自己寫的程式沒有任何BUG,尤其是在商業項目中,程式量越大,複雜度越高,出錯的機率越大,尤其是現場環境千差萬别,和當初本地電腦測試環境很可能不一樣,有很多特殊情況沒有考慮到,如果需要保證程式7*24小時運作,則需要想一些辦法能夠讓程式死了能夠活過來,在嵌入式linux上,大部分會采用看門狗的形式來處理,程式打開看門狗驅動後,定時喂狗,一旦超過規定的時間,則硬體軟複位等。這種方式相對來說比較可靠,如果需要在普通PC機上運作怎辦呢?本篇文章提供一個軟體實作守護程序的辦法,原理就是udp通信,單獨寫個守護程序程式,專門負責檢測主程式是否存在,不存在則啟動。主程式隻需要啟動live類監聽端口,收到hello就回複ok就行。
為了使得相容任意程式,特意提煉出來共性,增加了多種設定。
1:可設定檢測的程式名稱。
2:可設定udp通信端口。
3:可設定逾時次數。
4:自動記錄已重新開機次數。
5:自動記錄最後一次重新開機時間。
6:是否需要重新重新整理桌面。
7:可重置目前重新開機次數和最後重新開機時間。
8:自動隐藏的托盤運作或者背景運作。
9:提供界面設定程式名稱已經開啟和暫停服務。

守護進行核心代碼:
使用主程式核心代碼: