linux进程看门狗使用方式,Linux系统中基于看门狗的精细化进程监控方法及系统的制作方法...
Linux系統中基于看門狗的精細化進程監控方法及系統的制作方法
【技術領域】
[0001] 本發明涉及Linux系統的進程監控技術領域,特別是涉及一種Linux系統中基于看 門狗的精細化進程監控方法及系統。
【背景技術】
[0002] 在嵌入式Linux系統中,由于處理器的工作常常會受到來自外界電磁場的干擾,造 成程序的跑飛,而陷入死循環,進而使得程序的正常運行被打斷,系統無法繼續工作,會造 成整個系統陷入停滯狀態,甚至發生不可預料的后果。因此,出于對Linux系統的穩定性考 慮,通常需要對Linux系統中各種運行的進程進行實時監控。
[0003] 在Li nux系統中,進程監控本質上是利用Li nux提供的IPC( Inter-Process Communication,進程間通信)機制完成監控進程與業務進程之間的消息傳遞。現有的進程 監控方法一般采用一種靜態監控模式,即監控進程通過讀取一份已有的配置文件(該配置 文件記錄了 Linux系統中所有運行的業務進程),開始對配置文件中的所有業務進程進行監 控,監控過程中,監控進程通過不斷向各業務進程發送信號,來判斷各業務進程是否還存 在,若存在,則說明該業務進程未出現程序跑飛等異常;若不存在,則說明該業務進程可能 出現了程序跑飛等異常。
[0004] 現有監控方式雖然簡單易行,但使用過程中依然存在以下缺陷:
[0005] (1)現有監控方式的監控精細度不高,只能對各業務進程是否出現程序跑飛等最 基本的狀態進行判斷,無法對系統的使用狀態和業務進程中最新運行狀態等進行更精細化 的監控,難以滿足進程監控的高質量要求。
[0006] (2)在實際應用中,有些業務進程運行周期短、使用頻率低,對于這些業務進程往 往無需進行長期的實時監控。而現有的監控方式中,監控進程只能統一對配置文件中的所 有業務進程進行監控,監控方式不靈活,造成大量監控資源的浪費,使得整體的監控效率 低。
【發明內容】
[0007] 本發明的目的是為了克服上述【背景技術】的不足,提供一種Linux系統中基于看門 狗的精細化進程監控方法及系統,能夠實現精細化的進程監控,滿足進程監控的高質量要 求;而且監控方式靈活,節省資源、效率高。
[0008]為達到以上目的,本發明提供一種Linux系統中基于看門狗的精細化進程監控方 法,包括以下步驟:
[0009] S1:創建監控配置文件,監控配置文件包括看門狗超時值、靜態業務進程名以及監 控方式的類型,監控方式的類型為動態監控或靜態監控,轉入S2;
[0010] S2:根據監控配置文件中監控方式的類型,判斷本次進程監控所采用的監控方式 是靜態監控還是動態監控,若為靜態監控,則轉入S3;若為動態監控,則轉入S4;
[0011] S3:創建靜態喂狗線程和發送線程;靜態喂狗線程在系統正常時,定時對看門狗硬 件執行"喂狗"操作;當發送線程根據監控配置文件中的靜態業務進程名向對應的業務進程 定期發送指定信號時,靜態喂狗線程將根據各靜態業務進程的返回值判斷對應業務進程是 否依舊存在,若是,則靜態喂狗線程繼續執行"喂狗"操作,使系統繼續正常運行;否則,靜態 喂狗線程停止執行"喂狗"操作,停止時間超過看門狗超時值后,系統重啟復位,結束;
[0012] S4:創建動態喂狗線程和接收線程;動態喂狗線程在系統正常時,定時對看門狗硬 件執行"喂狗"操作;當有業務進程注冊到接收線程后,接收線程開始接收由該業務進程不 斷發出的狀態幀,并通過狀態幀獲得業務進程的最新狀態;動態喂狗線程對業務進程的最 新狀態和系統的使用狀態進行監控,當業務進程和系統均正常時,動態喂狗線程繼續執行 "喂狗"操作,使系統繼續正常運行;當發現業務進程或系統出現異常時,動態喂狗線程則停 止執行"喂狗"操作,停止時間超過看門狗超時值后,系統重啟復位,結束。
[0013] 在上述技術方案的基礎上,S4具體包括以下步驟:
[0014] S401:創建并初始化動態喂狗線程,初始化時,將創建通信通道和進程狀態信息 表,其中,進程狀態信息表用于存儲所有被監控的業務進程的狀態信息,轉入S402:
[0015] S402:動態喂狗線程創建并啟動接收線程;接收線程啟動后,動態喂狗線程進入 "喂狗"循環:在系統正常時,定時對看門狗硬件執行"喂狗"操作;當有業務進程注冊到接收 線程后,接收線程會將當前注冊的業務進程的狀態信息添加到進程狀態信息表中,業務進 程通過通信通道不斷向接收線程發送狀態幀,接收線程根據收到的狀態幀,獲取業務進程 的最新狀態信息,并更新進程狀態信息表;動態喂狗線程定期檢查進程狀態信息表,并實時 獲取系統的使用狀態信息,當業務進程和系統均正常時,動態喂狗線程繼續執行"喂狗"操 作,使系統繼續正常運行;當發現業務進程或系統出現異常時,動態喂狗線程則停止執行 "喂狗"操作,停止時間超過看門狗超時值后,系統重啟復位,結束。
[0016] 在上述技術方案的基礎上,所述進程狀態信息表的表項與所述狀態幀的結構相 同,均包括以下字段:
[0017] 進程號:用于標識發送狀態幀的業務進程;
[0018] 線程號:用于標識業務進程中發送狀態幀的線程編號或句柄;
[0019] 終止時間:表示業務進程下一次發送狀態幀的最大間隔值,取值2 0;
[0020] 異常編碼:用于標識業務進程當前的異常號,與系統的errno編碼一致;
[0021] 提示信息:用于警告某線程出現問題的信息。
[0022]在上述技術方案的基礎上,S402中,接收線程每次更新進程狀態信息表時,將對進 程狀態信息表的終止時間字段進行重置;動態喂狗線程每次定期檢查進程狀態信息表時, 將對進程狀態信息表的終止時間字段進行減一操作;一旦某一業務進程的終止時間字段減 為0,則表明該業務進程出現異常。
[0023] 在上述技術方案的基礎上,S402中,動態喂狗線程定期檢查進程狀態信息表時,將 根據進程狀態信息表的異常編碼字段,判斷該異常是否會影響系統的運行,若是,則表明業 務進程出現異常;否則,表明業務線程未出現異常。
[0024] 在上述技術方案的基礎上,S1中所述監控配置文件的內容還包括系統空閑內存下 界闕值;S402中所述實時獲取系統的使用狀態信息,具體包括以下步驟:通過df命令獲取當 前Flash使用率;使用〇81:/^1'〇〇/11161116;[1^0命令獲取當前系統內存使用率 ;使用031:八)1'0(3/ stat命令獲取當前系統使用率;S402中所述系統出現異常,具體包括以下情況:當前 FI ash使用率超出80%或當前系統內存使用率超出監控配置文件中系統空閑內存下界闕值 或當前系統CHJ使用率超出80%。
[0025]在上述技術方案的基礎上,S402中所述業務進程通過通信通道不斷向接收線程發 送狀態幀時,業務進程將對狀態幀的發送狀態進行判斷,如果發送過程出錯,業務進程將從 接收進程中解注冊。
[0026]在上述技術方案的基礎上,S402中,接收線程在更新進程狀態信息表時,將鎖住進 程狀態信息表;S402中,動態喂狗線程定期檢查進程狀態信息表時,將鎖住進程狀態信息 表。
[0027] 在上述技術方案的基礎上,S3中所述指定信號為編號為0的空信號。
[0028] 本發明還提供一種實現上述方法的Linux系統中基于看門狗的精細化進程監控系 統,包括監控配置文件創建模塊、監控方式判斷模塊、靜態監控模塊和動態監控模塊;
總結
以上是生活随笔為你收集整理的linux进程看门狗使用方式,Linux系统中基于看门狗的精细化进程监控方法及系统的制作方法...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux命令怎么查看dat格式的文件,
- 下一篇: linux查看文件句柄阀值,promet