亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

Linux系統(tǒng)中基于看門狗的精細(xì)化進程監(jiān)控方法及系統(tǒng)的制作方法

文檔序號:9910868閱讀:801來源:國知局
Linux系統(tǒng)中基于看門狗的精細(xì)化進程監(jiān)控方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及Linux系統(tǒng)的進程監(jiān)控技術(shù)領(lǐng)域,特別是涉及一種Linux系統(tǒng)中基于看 門狗的精細(xì)化進程監(jiān)控方法及系統(tǒng)。
【背景技術(shù)】
[0002] 在嵌入式Linux系統(tǒng)中,由于處理器的工作常常會受到來自外界電磁場的干擾,造 成程序的跑飛,而陷入死循環(huán),進而使得程序的正常運行被打斷,系統(tǒng)無法繼續(xù)工作,會造 成整個系統(tǒng)陷入停滯狀態(tài),甚至發(fā)生不可預(yù)料的后果。因此,出于對Linux系統(tǒng)的穩(wěn)定性考 慮,通常需要對Linux系統(tǒng)中各種運行的進程進行實時監(jiān)控。
[0003] 在Li nux系統(tǒng)中,進程監(jiān)控本質(zhì)上是利用Li nux提供的IPC( Inter-Process Communication,進程間通信)機制完成監(jiān)控進程與業(yè)務(wù)進程之間的消息傳遞?,F(xiàn)有的進程 監(jiān)控方法一般采用一種靜態(tài)監(jiān)控模式,即監(jiān)控進程通過讀取一份已有的配置文件(該配置 文件記錄了 Linux系統(tǒng)中所有運行的業(yè)務(wù)進程),開始對配置文件中的所有業(yè)務(wù)進程進行監(jiān) 控,監(jiān)控過程中,監(jiān)控進程通過不斷向各業(yè)務(wù)進程發(fā)送信號,來判斷各業(yè)務(wù)進程是否還存 在,若存在,則說明該業(yè)務(wù)進程未出現(xiàn)程序跑飛等異常;若不存在,則說明該業(yè)務(wù)進程可能 出現(xiàn)了程序跑飛等異常。
[0004] 現(xiàn)有監(jiān)控方式雖然簡單易行,但使用過程中依然存在以下缺陷:
[0005] (1)現(xiàn)有監(jiān)控方式的監(jiān)控精細(xì)度不高,只能對各業(yè)務(wù)進程是否出現(xiàn)程序跑飛等最 基本的狀態(tài)進行判斷,無法對系統(tǒng)的使用狀態(tài)和業(yè)務(wù)進程中最新運行狀態(tài)等進行更精細(xì)化 的監(jiān)控,難以滿足進程監(jiān)控的高質(zhì)量要求。
[0006] (2)在實際應(yīng)用中,有些業(yè)務(wù)進程運行周期短、使用頻率低,對于這些業(yè)務(wù)進程往 往無需進行長期的實時監(jiān)控。而現(xiàn)有的監(jiān)控方式中,監(jiān)控進程只能統(tǒng)一對配置文件中的所 有業(yè)務(wù)進程進行監(jiān)控,監(jiān)控方式不靈活,造成大量監(jiān)控資源的浪費,使得整體的監(jiān)控效率 低。

【發(fā)明內(nèi)容】

[0007] 本發(fā)明的目的是為了克服上述【背景技術(shù)】的不足,提供一種Linux系統(tǒng)中基于看門 狗的精細(xì)化進程監(jiān)控方法及系統(tǒng),能夠?qū)崿F(xiàn)精細(xì)化的進程監(jiān)控,滿足進程監(jiān)控的高質(zhì)量要 求;而且監(jiān)控方式靈活,節(jié)省資源、效率高。
[0008]為達到以上目的,本發(fā)明提供一種Linux系統(tǒng)中基于看門狗的精細(xì)化進程監(jiān)控方 法,包括以下步驟:
[0009] S1:創(chuàng)建監(jiān)控配置文件,監(jiān)控配置文件包括看門狗超時值、靜態(tài)業(yè)務(wù)進程名以及監(jiān) 控方式的類型,監(jiān)控方式的類型為動態(tài)監(jiān)控或靜態(tài)監(jiān)控,轉(zhuǎn)入S2;
[0010] S2:根據(jù)監(jiān)控配置文件中監(jiān)控方式的類型,判斷本次進程監(jiān)控所采用的監(jiān)控方式 是靜態(tài)監(jiān)控還是動態(tài)監(jiān)控,若為靜態(tài)監(jiān)控,則轉(zhuǎn)入S3;若為動態(tài)監(jiān)控,則轉(zhuǎn)入S4;
[0011] S3:創(chuàng)建靜態(tài)喂狗線程和發(fā)送線程;靜態(tài)喂狗線程在系統(tǒng)正常時,定時對看門狗硬 件執(zhí)行"喂狗"操作;當(dāng)發(fā)送線程根據(jù)監(jiān)控配置文件中的靜態(tài)業(yè)務(wù)進程名向?qū)?yīng)的業(yè)務(wù)進程 定期發(fā)送指定信號時,靜態(tài)喂狗線程將根據(jù)各靜態(tài)業(yè)務(wù)進程的返回值判斷對應(yīng)業(yè)務(wù)進程是 否依舊存在,若是,則靜態(tài)喂狗線程繼續(xù)執(zhí)行"喂狗"操作,使系統(tǒng)繼續(xù)正常運行;否則,靜態(tài) 喂狗線程停止執(zhí)行"喂狗"操作,停止時間超過看門狗超時值后,系統(tǒng)重啟復(fù)位,結(jié)束;
[0012] S4:創(chuàng)建動態(tài)喂狗線程和接收線程;動態(tài)喂狗線程在系統(tǒng)正常時,定時對看門狗硬 件執(zhí)行"喂狗"操作;當(dāng)有業(yè)務(wù)進程注冊到接收線程后,接收線程開始接收由該業(yè)務(wù)進程不 斷發(fā)出的狀態(tài)幀,并通過狀態(tài)幀獲得業(yè)務(wù)進程的最新狀態(tài);動態(tài)喂狗線程對業(yè)務(wù)進程的最 新狀態(tài)和系統(tǒng)的使用狀態(tài)進行監(jiān)控,當(dāng)業(yè)務(wù)進程和系統(tǒng)均正常時,動態(tài)喂狗線程繼續(xù)執(zhí)行 "喂狗"操作,使系統(tǒng)繼續(xù)正常運行;當(dāng)發(fā)現(xiàn)業(yè)務(wù)進程或系統(tǒng)出現(xiàn)異常時,動態(tài)喂狗線程則停 止執(zhí)行"喂狗"操作,停止時間超過看門狗超時值后,系統(tǒng)重啟復(fù)位,結(jié)束。
[0013] 在上述技術(shù)方案的基礎(chǔ)上,S4具體包括以下步驟:
[0014] S401:創(chuàng)建并初始化動態(tài)喂狗線程,初始化時,將創(chuàng)建通信通道和進程狀態(tài)信息 表,其中,進程狀態(tài)信息表用于存儲所有被監(jiān)控的業(yè)務(wù)進程的狀態(tài)信息,轉(zhuǎn)入S402:
[0015] S402:動態(tài)喂狗線程創(chuàng)建并啟動接收線程;接收線程啟動后,動態(tài)喂狗線程進入 "喂狗"循環(huán):在系統(tǒng)正常時,定時對看門狗硬件執(zhí)行"喂狗"操作;當(dāng)有業(yè)務(wù)進程注冊到接收 線程后,接收線程會將當(dāng)前注冊的業(yè)務(wù)進程的狀態(tài)信息添加到進程狀態(tài)信息表中,業(yè)務(wù)進 程通過通信通道不斷向接收線程發(fā)送狀態(tài)幀,接收線程根據(jù)收到的狀態(tài)幀,獲取業(yè)務(wù)進程 的最新狀態(tài)信息,并更新進程狀態(tài)信息表;動態(tài)喂狗線程定期檢查進程狀態(tài)信息表,并實時 獲取系統(tǒng)的使用狀態(tài)信息,當(dāng)業(yè)務(wù)進程和系統(tǒng)均正常時,動態(tài)喂狗線程繼續(xù)執(zhí)行"喂狗"操 作,使系統(tǒng)繼續(xù)正常運行;當(dāng)發(fā)現(xiàn)業(yè)務(wù)進程或系統(tǒng)出現(xiàn)異常時,動態(tài)喂狗線程則停止執(zhí)行 "喂狗"操作,停止時間超過看門狗超時值后,系統(tǒng)重啟復(fù)位,結(jié)束。
[0016] 在上述技術(shù)方案的基礎(chǔ)上,所述進程狀態(tài)信息表的表項與所述狀態(tài)幀的結(jié)構(gòu)相 同,均包括以下字段:
[0017] 進程號:用于標(biāo)識發(fā)送狀態(tài)幀的業(yè)務(wù)進程;
[0018] 線程號:用于標(biāo)識業(yè)務(wù)進程中發(fā)送狀態(tài)幀的線程編號或句柄;
[0019] 終止時間:表示業(yè)務(wù)進程下一次發(fā)送狀態(tài)幀的最大間隔值,取值2 0;
[0020] 異常編碼:用于標(biāo)識業(yè)務(wù)進程當(dāng)前的異常號,與系統(tǒng)的errno編碼一致;
[0021] 提示信息:用于警告某線程出現(xiàn)問題的信息。
[0022]在上述技術(shù)方案的基礎(chǔ)上,S402中,接收線程每次更新進程狀態(tài)信息表時,將對進 程狀態(tài)信息表的終止時間字段進行重置;動態(tài)喂狗線程每次定期檢查進程狀態(tài)信息表時, 將對進程狀態(tài)信息表的終止時間字段進行減一操作;一旦某一業(yè)務(wù)進程的終止時間字段減 為0,則表明該業(yè)務(wù)進程出現(xiàn)異常。
[0023] 在上述技術(shù)方案的基礎(chǔ)上,S402中,動態(tài)喂狗線程定期檢查進程狀態(tài)信息表時,將 根據(jù)進程狀態(tài)信息表的異常編碼字段,判斷該異常是否會影響系統(tǒng)的運行,若是,則表明業(yè) 務(wù)進程出現(xiàn)異常;否則,表明業(yè)務(wù)線程未出現(xiàn)異常。
[0024] 在上述技術(shù)方案的基礎(chǔ)上,S1中所述監(jiān)控配置文件的內(nèi)容還包括系統(tǒng)空閑內(nèi)存下 界闕值;S402中所述實時獲取系統(tǒng)的使用狀態(tài)信息,具體包括以下步驟:通過df命令獲取當(dāng) 前Flash使用率;使用〇81:/^1'〇〇/11161116;[1^0命令獲取當(dāng)前系統(tǒng)內(nèi)存使用率 ;使用031:八)1'0(3/ stat命令獲取當(dāng)前系統(tǒng)使用率;S402中所述系統(tǒng)出現(xiàn)異常,具體包括以下情況:當(dāng)前 FI ash使用率超出80%或當(dāng)前系統(tǒng)內(nèi)存使用率超出監(jiān)控配置文件中系統(tǒng)空閑內(nèi)存下界闕值 或當(dāng)前系統(tǒng)CHJ使用率超出80%。
[0025]在上述技術(shù)方案的基礎(chǔ)上,S402中所述業(yè)務(wù)進程通過通信通道不斷向接收線程發(fā) 送狀態(tài)幀時,業(yè)務(wù)進程將對狀態(tài)幀的發(fā)送狀態(tài)進行判斷,如果發(fā)送過程出錯,業(yè)務(wù)進程將從 接收進程中解注冊。
[0026]在上述技術(shù)方案的基礎(chǔ)上,S402中,接收線程在更新進程狀態(tài)信息表時,將鎖住進 程狀態(tài)信息表;S402中,動態(tài)喂狗線程定期檢查進程狀態(tài)信息表時,將鎖住進程狀態(tài)信息 表。
[0027] 在上述技術(shù)方案的基礎(chǔ)上,S3中所述指定信號為編號為0的空信號。
[0028] 本發(fā)明還提供一種實現(xiàn)上述方法的Linux系統(tǒng)中基于看門狗的精細(xì)化進程監(jiān)控系 統(tǒng),包括監(jiān)控配置文件創(chuàng)建模塊、監(jiān)控方式判斷模塊、靜態(tài)監(jiān)控模塊和動態(tài)監(jiān)控模塊;
當(dāng)前第1頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1