本發(fā)明涉及計算機技術領域,特別涉及一種linux系統(tǒng)復位處理方法及裝置。
背景技術:
linux系統(tǒng)在運行的過程中經常會發(fā)生復位,復位場景通常包括:系統(tǒng)調用引起的復位、鍵盤操作引起的復位(鍵盤組合鍵)、電源按鍵引起的復位以及內核錯誤引起的復位等。
對于系統(tǒng)調用引起的復位,通常只有部分命令行程序(關機程序shutdown、重啟程序reboot、停止程序halt等)在調用系統(tǒng)調用之前會記錄復位信息到相應的日志文件中(比如wtmp文件)中,而如果直接調用系統(tǒng)調用,則沒有記錄;然而,wtmp文件中記錄的復位信息較少,無法追溯進程調用信息,無法找到復位操作的最原始的發(fā)起者。
對于內核錯誤引起的復位,現(xiàn)有技術通常通過kdump服務把當前的內存鏡像存儲到vmcore文件中,可以通過crash等工具來解析vmcore文件,進而獲得相應的復位信息;然而kdump等工具會保存當前系統(tǒng)的整個內存鏡像,占用存儲空間大、耗費時間長。
而對于鍵盤操作引起的復位和電源按鍵引起的復位,現(xiàn)有技術難以收集相應的復位信息。
因此,在linux系統(tǒng)進行系統(tǒng)復位時,復位信息難以收集,給故障定位帶來困擾。
技術實現(xiàn)要素:
本發(fā)明提供了一種linux系統(tǒng)復位處理方法及裝置,其目的是為了解決在linux系統(tǒng)進行系統(tǒng)復位時,復位信息難以收集,給故障定位帶來困擾的問題。
為了達到上述目的,本發(fā)明的實施例提供了一種linux系統(tǒng)復位處理方法,該方法包括:
監(jiān)測linux系統(tǒng)的復位場景;
當監(jiān)測到linux系統(tǒng)啟動復位流程時,獲取復位操作的復位信息,將復位信息緩存在預設的保留內存中,其中復位信息包括復位操作的場景信息、發(fā)起者信息以及當前系統(tǒng)的狀態(tài)信息;保留內存為系統(tǒng)內存中的內存空間;
當監(jiān)測到linux系統(tǒng)執(zhí)行復位操作時,啟動預設內核,在所啟動的預設內核中,將復位信息存儲在硬盤中。
優(yōu)選地,獲取復位操作的復位信息的步驟,包括:
識別復位操作的場景信息;其中,復位操作的場景信息包括:系統(tǒng)調用引起的復位、電源鍵引起的復位以及鍵盤組合鍵引起的復位中的一種;
獲取復位操作的發(fā)起者信息以及當前系統(tǒng)的狀態(tài)信息,發(fā)起者信息至少包括:發(fā)起者的當前進程的進程標識符、與進程標識符對應的內核啟動的第一個用戶級init進程、所屬終端、所屬用戶、啟動時間以及執(zhí)行的命令;當前系統(tǒng)的狀態(tài)信息至少包括:系統(tǒng)執(zhí)行復位操作前的中央處理器cpu狀態(tài)、內存狀態(tài)、輸入/輸出i/o狀態(tài)。
優(yōu)選地,識別復位操作的場景信息的步驟包括:
當在系統(tǒng)內核調用的處理流程中檢測到用戶態(tài)程序調用重新啟動系統(tǒng)reboot命令時,確定復位操作的場景信息為系統(tǒng)調用引起的復位;
當檢測到高級配置和電源管理接口acpi向系統(tǒng)上報系統(tǒng)復位對應的電源鍵事件時,確定復位操作的場景信息為電源鍵引起的復位;
當在鍵盤處理函數中檢測到與系統(tǒng)復位對應的鍵盤處理函數時,確定復位操作的場景信息為鍵盤組合鍵引起的復位。
優(yōu)選地,獲取復位操作的發(fā)起者信息的步驟,包括:
獲取發(fā)起者的當前進程的進程標識符、所屬終端、所屬用戶、啟動時間以及執(zhí)行的命令;
根據當前進程的進程標識符與進程標識符對應的init進程,獲取父進程的進程標識符,所述父進程為發(fā)起者的當前進程與init進程之間的進程。
優(yōu)選地,獲取復位操作的復位信息的步驟之后,方法還包括:
根據復位信息判斷復位操作的場景信息是否為內核錯誤引起的系統(tǒng)復位;
當判斷結果為是時,標記復位操作為內核錯誤;
其中,當監(jiān)測到linux系統(tǒng)執(zhí)行復位操作時,啟動預設內核的步驟之后,
在預設內核中,將復位操作以及標記信息對應存儲在硬盤中并執(zhí)行復位操作。
優(yōu)選地,當監(jiān)測到linux系統(tǒng)啟動復位流程時的步驟之前,方法還包括:
建立保留內存,并配置保留內存的容量以及起始地址并記錄。
優(yōu)選地,將復位信息緩存在預設的保留內存中的步驟,包括:
根據保留內存的容量以及起始地址查找保留內存,將復位信息緩存在保留內存中。
優(yōu)選地,當監(jiān)測到linux系統(tǒng)執(zhí)行復位操作時的步驟之前,方法還包括:
建立預設內核,配置預設內核的容量以及起始地址并生成鏡像文件,將鏡像文件存儲在硬盤中。
為了實現(xiàn)上述目的,本發(fā)明的實施例還提供了一種linux系統(tǒng)復位處理裝置,包括:
檢測模塊,用于監(jiān)測linux系統(tǒng)的復位場景;
獲取模塊,用于當監(jiān)測到linux系統(tǒng)啟動復位流程時,獲取復位操作的復位信息,將復位信息緩存在預設的保留內存中,其中復位信息包括復位操作的場景信息、發(fā)起者信息以及當前系統(tǒng)的狀態(tài)信息;保留內存為系統(tǒng)內存中的內存空間;
執(zhí)行模塊,用于當監(jiān)測到linux系統(tǒng)執(zhí)行復位操作時,啟動預設內核,在所啟動的預設內核中,將復位信息存儲在硬盤中。
優(yōu)選地,獲取模塊包括:
識別子模塊,用于識別復位操作的場景信息;其中,復位操作的場景信息包括:系統(tǒng)調用引起的復位、電源鍵引起的復位以及鍵盤組合鍵引起的復位中的一種;
信息獲取子模塊,用于獲取復位操作的發(fā)起者信息以及當前系統(tǒng)的狀態(tài)信息,發(fā)起者信息至少包括:發(fā)起者的當前進程的進程標識符、與進程標識符對應的內核啟動的第一個用戶級init進程、所屬終端、所屬用戶、啟動時間以 及執(zhí)行的命令;當前系統(tǒng)的狀態(tài)信息至少包括:系統(tǒng)執(zhí)行復位操作前的中央處理器cpu狀態(tài)、內存狀態(tài)、輸入/輸出i/o狀態(tài)。
優(yōu)選地,識別子模塊包括:
第一確定單元,用于當在系統(tǒng)內核調用的處理流程中檢測到用戶態(tài)程序調用重新啟動系統(tǒng)reboot命令時,確定復位操作的場景信息為系統(tǒng)調用引起的復位;
第二確定單元,用于當檢測到高級配置和電源管理接口acpi向系統(tǒng)上報系統(tǒng)復位對應的電源鍵事件時,確定復位操作的場景信息為電源鍵引起的復位;
第三確定單元,用于當在鍵盤處理函數中檢測到與系統(tǒng)復位對應的鍵盤處理函數時,確定復位操作的場景信息為鍵盤組合鍵引起的復位。
優(yōu)選地,信息獲取子模塊包括:
第一獲取單元,用于根據當前進程的進程標識符與進程標識符對應的init進程,獲取父進程的進程標識符,所述父進程為發(fā)起者的當前進程與init進程之間的進程。
優(yōu)選地,還包括:
內核錯誤處理模塊,用于在獲取模塊獲取復位操作的復位信息之后,
根據復位信息判斷復位操作的場景信息是否為內核錯誤引起的系統(tǒng)復位;
當判斷結果為是時,標記復位操作為內核錯誤;
其中,當監(jiān)測到linux系統(tǒng)執(zhí)行復位操作時,啟動預設內核的步驟之后,
在預設內核中,將復位操作以及標記信息對應存儲在硬盤中并執(zhí)行復位操作。
優(yōu)選地,該裝置還包括:
內存建立模塊,用于在獲取模塊當監(jiān)測到linux系統(tǒng)啟動復位流程時之前,
建立保留內存,并配置保留內存的容量以及起始地址并記錄。
優(yōu)選地,獲取模塊還用于:
根據保留內存的容量以及起始地址查找保留內存,將復位信息緩存在保留內存中。
優(yōu)選地,該裝置還包括:
內核建立模塊,用于在執(zhí)行模塊當監(jiān)測到linux系統(tǒng)執(zhí)行復位操作時之前,
建立預設內核,配置預設內核的容量以及起始地址并生成鏡像文件,將鏡像文件存儲在硬盤中。
本發(fā)明的上述方案至少包括以下有益效果:
本發(fā)明提供的linux系統(tǒng)復位處理方法及裝置,通過當監(jiān)測到linux系統(tǒng)啟動復位流程時,獲取復位操作的復位信息,可及時地收集復位信息,追溯進程調用信息,找到復位操作的最原始的發(fā)起者;并在預設內核中將復位信息寫入硬盤,僅存儲復位信息,占用的存儲空間小,且耗費時間較短,實現(xiàn)復位信息持久化,便于進行故障定位或者其他服務,增強系統(tǒng)的可維護性。本發(fā)明解決了linux系統(tǒng)進行系統(tǒng)復位時,復位信息難以收集,給故障定位帶來困擾的問題。
附圖說明
圖1表示本發(fā)明的第一實施例提供的linux系統(tǒng)復位處理方法的基本步驟流程圖;
圖2為本發(fā)明的第二實施例的場景示意圖;
圖3為本發(fā)明的第二實施例的內核態(tài)控制模塊執(zhí)行的步驟的流程圖;
圖4為本發(fā)明的第二實施例的用戶態(tài)復位信息收集模塊執(zhí)行的步驟的流程圖;
圖5為本發(fā)明的第二實施例的復位信息緩存模塊執(zhí)行的步驟的流程圖;
圖6為本發(fā)明的第二實施例的復位信息持久化模塊執(zhí)行的步驟的流程圖;
圖7為本發(fā)明的第二實施例的快速啟動內核模塊執(zhí)行的步驟的流程圖;
圖8為本發(fā)明的第三實施例提供的linux系統(tǒng)復位處理裝置的框圖。
具體實施方式
為使本發(fā)明要解決的技術問題、技術方案和優(yōu)點更加清楚,下面將結合附圖及具體實施例進行詳細描述。
本發(fā)明針對現(xiàn)有的問題,提供了一種linux系統(tǒng)復位處理方法及裝置。
第一實施例
參見圖1,本發(fā)明的第一實施例提供了一種linux系統(tǒng)復位處理方法,包 括:
步驟101,監(jiān)測linux系統(tǒng)的復位場景。
其中,復位場景通常包括:系統(tǒng)調用引起的復位、鍵盤操作引起的復位(鍵盤組合鍵,比如ctrl+alt+delete組合鍵)、電源按鍵引起的復位以及內核錯誤引起的復位等。
步驟102,當監(jiān)測到linux系統(tǒng)啟動復位流程時,獲取復位操作的復位信息,將復位信息緩存在預設的保留內存中,其中復位信息包括復位操作的場景信息、發(fā)起者信息以及當前系統(tǒng)的狀態(tài)信息;保留內存為系統(tǒng)內存中的內存空間。
其中,保留內存為預設的系統(tǒng)內存中的內存空間,用于緩存復位信息。以系統(tǒng)調用引起的復位為例,當系統(tǒng)復位流程啟動時,可能硬盤已經無法訪問,因此需要在內存中保留一段空間區(qū)域,用于緩存復位信息。當監(jiān)測到linux系統(tǒng)啟動復位流程時,也就是在復位流程的入口,插入相應的處理邏輯,獲取復位信息,將復位信息緩存在保留內存中,并提供讀出和寫入的接口地址,以便于寫入硬盤。
步驟103,當監(jiān)測到linux系統(tǒng)執(zhí)行復位操作時,啟動預設內核,在所啟動的預設內核中,將復位信息存儲在硬盤中。
其中,預設內核為脫離系統(tǒng)內核以外的內核,用于執(zhí)行系統(tǒng)復位。本發(fā)明的實施例將復位信息寫入硬盤的過程也在預設內核中執(zhí)行。
本發(fā)明的上述實施例中,步驟102包括:
第一步,識別復位操作的場景信息;其中,復位操作的場景信息包括:系統(tǒng)調用引起的復位、電源鍵引起的復位以及鍵盤組合鍵引起的復位中的一種;
第二步,獲取復位操作的發(fā)起者信息以及當前系統(tǒng)的狀態(tài)信息,發(fā)起者信息至少包括:發(fā)起者的當前進程的進程標識符、與進程標識符對應的內核啟動的第一個用戶級init進程、所屬終端、所屬用戶、啟動時間以及執(zhí)行的命令;當前系統(tǒng)的狀態(tài)信息至少包括:系統(tǒng)執(zhí)行復位操作前的中央處理器cpu狀態(tài)、內存狀態(tài)、輸入/輸出i/o狀態(tài)。
優(yōu)選地,上述第一步包括:
當在系統(tǒng)內核調用的處理流程中檢測到用戶態(tài)程序調用重新啟動系統(tǒng) reboot命令時,確定復位操作的場景信息為系統(tǒng)調用引起的復位;具體地,當系統(tǒng)內核調用的處理流程中檢測到由用戶態(tài)程序調用reboot命令對應的程序語言時,可確認復位操作的場景信息為系統(tǒng)調用。
當檢測到高級配置和電源管理接口acpi向系統(tǒng)上報系統(tǒng)復位對應的電源鍵事件時,確定復位操作的場景信息為電源鍵引起的復位;通常情況下,系統(tǒng)硬件通過acpi向系統(tǒng)上報電源鍵事件時,比如短按電源鍵通常為重啟(即系統(tǒng)復位),那么當用戶短按電源鍵時,acpi會向系統(tǒng)上報,那么接收到acpi所上報的短按電源鍵的事件時,可確認復位操作的場景信息為電源鍵引起的復位。
當在鍵盤處理函數中檢測到與系統(tǒng)復位對應的鍵盤處理函數時,確定復位操作的場景信息為鍵盤組合鍵引起的復位;具體地,當用戶在按下“ctrl+alt+del”組合鍵以后,系統(tǒng)響應中斷事件會調用驅動層中斷處理函數,然后進入內核輸入子系統(tǒng)進行子系統(tǒng)分類,最后調用與系統(tǒng)復位對應的鍵盤處理函數,啟動復位流程。
優(yōu)選地,上述第一步包括:
獲取發(fā)起者的當前進程的進程標識符、所屬終端、所屬用戶、啟動時間以及執(zhí)行的命令;
根據當前進程的進程標識符與進程標識符對應的init進程,獲取父進程的進程標識符,所述父進程為發(fā)起者的當前進程與init進程之間的進程;其中,init進程是內核啟動的第一個用戶級進程,父進程為當前進程與inti進程之間的進程,通常情況下,父進程會存在多個,通過當前進程逐級向前回溯便可獲得各個父進程。獲取上述信息是為了收集與復位操作有關的信息,增強系統(tǒng)的可維護性。
本發(fā)明的上述實施例中,步驟102之后還包括:
根據復位信息判斷復位操作的場景信息是否為內核錯誤引起的系統(tǒng)復位,當判斷結果為是時,標記復位操作為內核錯誤;
其中,當監(jiān)測到linux系統(tǒng)執(zhí)行復位操作時,啟動預設內核的步驟之后,
在預設內核中,將復位操作以及標記信息對應存儲在硬盤中并執(zhí)行復位操作。
具體地,內核錯誤(kernelpanic)指操作系統(tǒng)監(jiān)測到內部的致命錯誤,并且無法安全處理此錯誤的情況;內核錯誤時可能系統(tǒng)無法正常運行,因此只能在預設內核中,將復位場景做標記,并執(zhí)行復位流程。
本發(fā)明的上述實施例中,步驟102之前,還包括:
建立保留內存,并配置保留內存的容量以及起始地址并記錄。
相應地,步驟102中,將復位信息緩存在預設的保留內存中的步驟,包括:
根據保留內存的容量以及起始地址查找保留內存,將復位信息緩存在保留內存中。
其中,保留內存用于緩存復位信息;在獲取復位信息之前建立保留內存,并配置容量以及起始地址,以便系統(tǒng)根據起始地址,將復位信息緩存在保留內存中。
本發(fā)明的上述實施例中,步驟102之前,還包括:
建立預設內核,配置預設內核的容量以及起始地址并生成鏡像文件,將鏡像文件存儲在硬盤中。
具體地,建立預設內核并配置容量以及起始地址,生成鏡像文件存儲在硬盤中,實現(xiàn)持久化。
本發(fā)明的上述實施例中,通過當監(jiān)測到linux系統(tǒng)啟動復位流程時,獲取復位操作的復位信息,可及時地收集復位信息,追溯進程調用信息,找到復位操作的最原始的發(fā)起者;并在預設內核中將復位信息寫入硬盤,僅存儲復位信息,占用的存儲空間小,且耗費時間較短,實現(xiàn)復位信息持久化,便于進行故障定位或者其他服務,增強系統(tǒng)的可維護性。本發(fā)明解決了linux系統(tǒng)進行系統(tǒng)復位時,復位信息難以收集,給故障定位帶來困擾的問題。
第二實施例
本發(fā)明的第二實施例以一個具體實施例,介紹本發(fā)明提供的linux系統(tǒng)復位處理方法。參見圖2,圖2為本發(fā)明的第二實施例的場景示意圖,圖2中所示的linux系統(tǒng)包括:內核態(tài)控制模塊201,用戶態(tài)復位信息收集模塊202,復位信息緩存模塊203,快速啟動內核模塊205以及復位信息持久化模塊204。
其中,內核態(tài)控制模塊201,用于提供收集系統(tǒng)復位信息的通用機制:在復位操作開始的時候,啟動用戶態(tài)復位信息收集模塊202;
在執(zhí)行處理器架構相關代碼、執(zhí)行系統(tǒng)復位操作之前:啟動快速啟動內核模塊205。
用戶態(tài)復位信息收集模塊202,用于提供收集系統(tǒng)復位信息的各種策略,便于系統(tǒng)把收集到的信息寫入復位信息緩存模塊203。
復位信息緩存模塊203,用于提供讀出、寫入接口,并被用戶態(tài)復位信息收集模塊202調用,將復位信息緩存在復位信息緩存模塊203中,被復位信息持久化模塊204所調用,獲取復位信息緩存模塊203中所緩存的復位信息。
快速啟動內核模塊205,用于快速啟動一個裁剪的、可用的內核,在內核的環(huán)境中,執(zhí)行復位信息持久化模塊204。
復位信息持久化模塊204,從復位信息緩存模塊203中讀出復位信息,保存到硬盤上指定的文件中。
如圖3所示,內核態(tài)控制模塊201執(zhí)行如下步驟:
步驟301,在系統(tǒng)復位的入口,插入處理邏輯:調用用戶態(tài)復位信息收集模塊202。其中,對于reboot系統(tǒng)調用引起的復位:
在reboot系統(tǒng)調用的流程中,插入處理邏輯:
啟動用戶態(tài)信息收集模塊202(可以通過call_usermodehelper等方法)。
對于鍵盤組合鍵引起的復位:
在鍵盤驅動的下半部處理中,插入處理邏輯:
啟動用戶態(tài)信息收集模塊202(可以通過call_usermodehelper等方法)。
對于電源按鍵引起的復位:
在acpi電源按鍵驅動程序的處理中,插入處理邏輯:
啟動用戶態(tài)信息收集模塊202(可以通過call_usermodehelper等方法)。
需要說明的時,對于內核錯誤引起的復位,由于內核已經無法正常工作了,所以不能啟動用戶態(tài)信息收集模塊,直接執(zhí)行步驟302。
步驟302,在執(zhí)行處理器架構相關代碼、真正執(zhí)行系統(tǒng)復位操作之前,插入邏輯:調用快速啟動小內核模塊。
對于reboot系統(tǒng)調用引起的復位、鍵盤組合鍵引起的復位以及電源按鍵引起的復位,在執(zhí)行系統(tǒng)復位操作之前,插入處理邏輯:
在內核態(tài)快速啟動內核(可以通過kernel_kexec等方法)。
而對于內核錯誤引起的復位,在內核錯誤的處理流程中,插入處理邏輯:
設置內核錯誤的標志,并快速啟動內核(可以通過kernel_kexec等方法),并且在參數中傳內核錯誤的標志。
如圖4所示,用戶態(tài)復位信息收集模塊202,執(zhí)行如下步驟:
步驟401,把當前復位場景的描述信息寫入復位信息緩存模塊203。
根據內核態(tài)控制模塊傳入的參數,分別把“reboot系統(tǒng)調用引起的復位”、“按下電源按鍵引起的復位”、“按下鍵盤組合鍵引起的復位”等描述信息,寫入復位信息緩存模塊203中。
步驟402,判斷是否需要記錄進程回溯信息,如果需要則執(zhí)行步驟403,否則執(zhí)行步驟404。
步驟403,進程回溯信息處理。具體地,進程回溯處理包括:獲取當前進程的id號等信息;把收集到信息記錄到復位信息緩存模塊中;判斷當前進程的父進程信息,如果已經是init進程了,則不需要繼續(xù)往上一級回溯了,否則,把當前進程id賦值為當前進程的父進程id,繼續(xù)循環(huán)回溯;
步驟404,判斷是否需要記錄系統(tǒng)狀態(tài)信息,如果需要則執(zhí)行步驟35,獲取cpu、內存、io等的統(tǒng)計信息,否則結束流程。
如圖5所示,復位信息緩存模塊203,執(zhí)行如下步驟:
步驟501,將用戶態(tài)復位信息收集模塊202中緩存的復位信息寫入保留內存;
步驟502,記錄保留內存的相關信息(容量和地址范圍等)。
如圖6所示,復位信息持久化模塊204,執(zhí)行如下步驟:
步驟601,判斷復位場景是否為內核錯誤(是否傳入內核錯誤標記),如果不是,則執(zhí)行步驟602,把復位信息緩存模塊中的數據持久化到硬盤上;否則執(zhí)行步驟603,將內核錯誤標記持久化到硬盤上。
如圖7所示,快速啟動內核模塊205,執(zhí)行如下步驟:
步驟701,檢測到內核控制模塊發(fā)起快速啟動時,執(zhí)行步驟702,快速啟動。
步驟703,啟動復位信息持久化模塊204,啟動復位信息持久化模塊204使把復位信息緩存模塊中的數據持久化到硬盤上或將內核錯誤標記持久化到 硬盤上。
本發(fā)明的上述實施例中,通過內核態(tài)控制模塊201當監(jiān)測到linux系統(tǒng)啟動復位流程時,在系統(tǒng)復位的入口,插入處理邏輯:調用用戶態(tài)復位信息收集模塊202獲取復位操作的復位信息并追溯進程調用信息,找到復位操作的最原始的發(fā)起者;并通過復位信息持久化模塊204將復位信息寫入硬盤,實現(xiàn)復位信息持久化,便于進行故障定位或者其他服務,增強系統(tǒng)的可維護性。本發(fā)明解決了linux系統(tǒng)進行系統(tǒng)復位時,復位信息難以收集,給故障定位帶來困擾的問題。
第三實施例
參見圖8,本發(fā)明的第三實施例提供了一種linux系統(tǒng)復位處理裝置,包括:
檢測模塊801,用于監(jiān)測linux系統(tǒng)的復位場景;
獲取模塊802,用于當監(jiān)測到linux系統(tǒng)啟動復位流程時,獲取復位操作的復位信息,將復位信息緩存在預設的保留內存中,其中復位信息包括復位操作的場景信息、發(fā)起者信息以及當前系統(tǒng)的狀態(tài)信息;保留內存為系統(tǒng)內存中的內存空間;
執(zhí)行模塊803,用于當監(jiān)測到linux系統(tǒng)執(zhí)行復位操作時,啟動預設內核,在所啟動的預設內核中,將復位信息存儲在硬盤中。
優(yōu)選地,獲取模塊802包括:
識別子模塊,用于識別復位操作的場景信息;其中,復位操作的場景信息包括:系統(tǒng)調用引起的復位、電源鍵引起的復位以及鍵盤組合鍵引起的復位中的一種;
信息獲取子模塊,用于獲取復位操作的發(fā)起者信息以及當前系統(tǒng)的狀態(tài)信息,發(fā)起者信息至少包括:發(fā)起者的當前進程的進程標識符、與進程標識符對應的內核啟動的第一個用戶級init進程、所屬終端、所屬用戶、啟動時間以及執(zhí)行的命令;當前系統(tǒng)的狀態(tài)信息至少包括:系統(tǒng)執(zhí)行復位操作前的中央處理器cpu狀態(tài)、內存狀態(tài)、輸入/輸出i/o狀態(tài)。
優(yōu)選地,識別子模塊包括:
第一確定單元,用于當在系統(tǒng)內核調用的處理流程中檢測到用戶態(tài)程序調 用重新啟動系統(tǒng)reboot命令時,確定復位操作的場景信息為系統(tǒng)調用引起的復位;
第二確定單元,用于當檢測到高級配置和電源管理接口acpi向系統(tǒng)上報系統(tǒng)復位對應的電源鍵事件時,確定復位操作的場景信息為電源鍵引起的復位;
第三確定單元,用于當在鍵盤處理函數中檢測到與系統(tǒng)復位對應的鍵盤處理函數時,確定復位操作的場景信息為鍵盤組合鍵引起的復位。
優(yōu)選地,信息獲取子模塊包括:
第一獲取單元,用于獲取發(fā)起者的當前進程的進程標識符、所屬終端、所屬用戶、啟動時間以及執(zhí)行的命令;
根據當前進程的進程標識符與進程標識符對應的init進程,獲取父進程的進程標識符,所述父進程為發(fā)起者的當前進程與init進程之間的進程。
優(yōu)選地,該裝置還包括:
內核錯誤處理模塊,用于在獲取模塊802獲取復位操作的復位信息之后,
根據復位信息判斷復位操作的場景信息是否為內核錯誤引起的系統(tǒng)復位,當判斷結果為是時,
標記復位操作為內核錯誤;
其中,當監(jiān)測到linux系統(tǒng)執(zhí)行復位操作時,啟動預設內核的步驟之后,
在預設內核中,將復位操作以及標記信息對應存儲在硬盤中并執(zhí)行復位操作。
優(yōu)選地,該裝置還包括:
內存建立模塊,用于在獲取模塊802當監(jiān)測到linux系統(tǒng)啟動復位流程時之前,
建立保留內存,并配置保留內存的容量以及起始地址并記錄。
優(yōu)選地,獲取模塊802還用于:
根據保留內存的容量以及起始地址查找保留內存,將復位信息緩存在保留內存中。
優(yōu)選地,該裝置還包括:
內核建立模塊,用于在執(zhí)行模塊803當監(jiān)測到linux系統(tǒng)執(zhí)行復位操作時之前,
建立預設內核,配置預設內核的容量以及起始地址并生成鏡像文件,將鏡像文件存儲在硬盤中。
本發(fā)明的上述實施例中,通過當監(jiān)測到linux系統(tǒng)啟動復位流程時,獲取復位操作的復位信息,可及時地收集復位信息,追溯進程調用信息,找到復位操作的最原始的發(fā)起者;并在預設內核中將復位信息寫入硬盤,僅存儲復位信息,占用的存儲空間小,且耗費時間較短,實現(xiàn)復位信息持久化,便于進行故障定位或者其他服務,增強系統(tǒng)的可維護性。本發(fā)明解決了linux系統(tǒng)進行系統(tǒng)復位時,復位信息難以收集,給故障定位帶來困擾的問題。
需要說明的是,本發(fā)明實施例提供的linux系統(tǒng)復位處理裝置是應用上述方法的裝置,即上述方法的所有實施例均適用于該裝置,且均能達到相同或相似的有益效果。
以上所述是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明所述原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。