心跳防护程序
心跳防護程序的作用
心跳防護程序用于實現無人值守的程序的自維護功能,使得被防護程序由于某種異常而導致崩潰時可以自動重新啟動,滿足無人值守的環境要求。
心跳防護程序適用于那些需要無人值守,長期運行,但程序由于不確定性因素有出現崩潰的可能。說明:本程序不是用來防護代碼質量差的程序的。
心跳防護程序的組成
心跳防護程序由兩部分組成。分別用于心臟跳動和心臟恢復。
第一部分為心跳計數模塊,需要植入被防護程序中,作為程序的心臟。當程序運行正常時,心跳計數也會正常進行。該模塊以動態庫形式發布。提供心跳啟動和心跳終止兩個接口。
第二部分為心跳恢復模塊。由心跳計數模塊啟動,監控被防護程序的運行狀態,當發現被防護程序運行異常時,刪除已存在的進程,重新啟動被防護程序,實現心跳繼續。該模塊以應用程序形式存在。
心跳防護程序的原理
?????? 心跳防護程序的核心是在心臟跳動和心臟恢復兩個模塊之間創建一個信號量。心臟跳動模塊負責給信號量增值,心臟恢復模塊負責給信號量減值。增減值采用同一頻率(每秒一次)。當心臟跳動正常時,信號量的值基本保持不變。如果心臟跳動異常(比如程序崩潰),信號量將不增加。心臟恢復模塊通過減值可以偵測到信號量為0,此時認為被防護程序已出現問題,刪除被防護程序的已有進程(通過進程名稱),然后重新啟動新程序。這樣就可以保持被防護程序的持續運行。
心跳防護程序用于實現無人值守的程序的自維護功能,使得被防護程序由于某種異常而導致崩潰時可以自動重新啟動,滿足無人值守的環境要求。
心跳防護程序適用于那些需要無人值守,長期運行,但程序由于不確定性因素有出現崩潰的可能。說明:本程序不是用來防護代碼質量差的程序的。
心跳防護程序的組成
心跳防護程序由兩部分組成。分別用于心臟跳動和心臟恢復。
第一部分為心跳計數模塊,需要植入被防護程序中,作為程序的心臟。當程序運行正常時,心跳計數也會正常進行。該模塊以動態庫形式發布。提供心跳啟動和心跳終止兩個接口。
第二部分為心跳恢復模塊。由心跳計數模塊啟動,監控被防護程序的運行狀態,當發現被防護程序運行異常時,刪除已存在的進程,重新啟動被防護程序,實現心跳繼續。該模塊以應用程序形式存在。
心跳防護程序的原理
?????? 心跳防護程序的核心是在心臟跳動和心臟恢復兩個模塊之間創建一個信號量。心臟跳動模塊負責給信號量增值,心臟恢復模塊負責給信號量減值。增減值采用同一頻率(每秒一次)。當心臟跳動正常時,信號量的值基本保持不變。如果心臟跳動異常(比如程序崩潰),信號量將不增加。心臟恢復模塊通過減值可以偵測到信號量為0,此時認為被防護程序已出現問題,刪除被防護程序的已有進程(通過進程名稱),然后重新啟動新程序。這樣就可以保持被防護程序的持續運行。
總結
- 上一篇: 2022最新最全升级版【精品工具】用Ap
- 下一篇: 2021-08-15