一種監(jiān)管進程的方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種監(jiān)管進程的方法和裝置,包括啟動需要監(jiān)管的進程,并保存各進程的進程名稱和進程身份PID;按照預先設置的第一周期,針對每個監(jiān)管的進程:采集進程的信息;根據(jù)采集到的信息確定進程的狀態(tài);如果進程的狀態(tài)為異常,則停止并重啟進程,如果進程的狀態(tài)為停止,則重啟進程。通過本發(fā)明提供的技術方案,能夠獨自、自動地監(jiān)管進程,從而有效提高了進程監(jiān)管的效率。
【專利說明】一種監(jiān)管進程的方法和裝置
【技術領域】
[0001]本發(fā)明涉及計算機技術,尤指一種監(jiān)管進程的方法和裝置。
【背景技術】
[0002]隨著信息技術的迅速發(fā)展,分布式系統(tǒng)技術得到了廣泛的應用。為了提高分布式系統(tǒng)的利用率和穩(wěn)定性,人們越來越關注分布式系統(tǒng)的管理。分布式系統(tǒng)的管理包括多個方面,其中,分布式系統(tǒng)的進程監(jiān)管是其中重要的一個方面。
[0003]目前,分布式系統(tǒng)的進程監(jiān)管的方法包括:代理端定期監(jiān)視需要監(jiān)管的進程,并將獲得的進程的狀態(tài)信息發(fā)送控制端;控制端根據(jù)獲得的狀態(tài)信息,判斷各進程的狀態(tài);如果進程的狀態(tài)不為正常,則控制端向該進程相應的責任人發(fā)送郵件和/或短信;收到郵件和/或短信通知的責任人根據(jù)進程的狀態(tài)完成相應處理。其中,代理端運行在分布式系統(tǒng)中的計算節(jié)點如服務器上,控制端運行在分布式系統(tǒng)中的控制節(jié)點如用于控制的服務器上。
[0004]如上所述,現(xiàn)有的分布式系統(tǒng)的進程監(jiān)管的方法,對于狀態(tài)不為正常的進程,代理端、控制端和進程的相關責任人需要配合完成進程的監(jiān)管,由于該過程中涉及人為因素,降低了進程監(jiān)管的效率,從而降低了分布式系統(tǒng)的穩(wěn)定性,影響了分布式系統(tǒng)的用戶體驗。
【發(fā)明內容】
[0005]為了解決上述技術問題,本發(fā)明提供了一種監(jiān)管進程的方法和裝置,代理端能夠獨自、自動地監(jiān)管進程,從而能夠有效提高進程監(jiān)管的效率。
[0006]為了達到本發(fā)明目的,本發(fā)明公開了一種監(jiān)管進程的方法,包括:
[0007]啟動需要監(jiān)管的進程,并保存各進程的進程名稱和進程身份PID;
[0008]按照預先設置的第一周期,針對每個監(jiān)管的進程:采集進程的信息;根據(jù)采集到的信息確定進程的狀態(tài);如果進程的狀態(tài)為異常,則停止并重啟進程,如果進程的狀態(tài)為停止,則重啟進程。
[0009]所述采集進程的信息包括:根據(jù)保存的進程名稱,獲得相應進程的操作系統(tǒng)中的PID。
[0010]所述確定進程的狀態(tài)包括:
[0011]判斷所述獲得PID是否成功,如果失敗,則確定所述狀態(tài)為停止;
[0012]如果成功,則判斷所述獲得的PID與所述保存的PID是否相等,如果二者相等,則確定所述狀態(tài)為正常,如果二者不相等,則確定所述狀態(tài)為異常。
[0013]所述停止進程和重啟進程是根據(jù)預先設置的腳本進行的。
[0014]所述重啟進程后,本發(fā)明方法還包括:采用所述進程的新的PID更新對應的保存的 PID。
[0015]本發(fā)明方法還包括:按照預先設置的第二周期向預先設置的郵件服務器發(fā)送監(jiān)管的進程的狀態(tài)信息,其中,所述狀態(tài)信息至少包括所述進程的進程名稱、PID和狀態(tài)。
[0016]本發(fā)明還公開了一種監(jiān)管進程的裝置,包括進程啟動單元、信息采集單元、狀態(tài)確定單元和停止重啟單元,其中,
[0017]進程啟動單元,用于啟動需要監(jiān)管的進程,并保存各進程的進程名稱和進程身份PID ;
[0018]信息采集單元,用于按照預先設置的第一周期,針對每個監(jiān)管的進程,采集進程的信息;
[0019]狀態(tài)確定單元,用于根據(jù)來自信息采集單元的采集到的信息確定進程的狀態(tài);
[0020]停止重啟單元,用于如果來自狀態(tài)確定單元的進程的狀態(tài)為異常,則停止并重啟進程,如果來自狀態(tài)確定單元的進程的狀態(tài)為停止,則重啟進程。
[0021]所述信息采集單元具體用于:根據(jù)保存的進程名稱,獲得相應進程的操作系統(tǒng)中的 PID。
[0022]所述狀態(tài)確定單元具體用于:
[0023]如果所述獲得PID失敗,則確定所述進程的狀態(tài)為停止;
[0024]如果所述獲得PID成功,且所述獲得的PID與所述保存的PID相等,則確定所述進程的狀態(tài)為正常;
[0025]如果所述獲得PID成功,且所述獲得的PID與所述保存的PID不相等,則確定所述進程的狀態(tài)為異常。
[0026]所述停止重啟單元中的停止進程和重啟進程是根據(jù)預先設置的腳本進行的。
[0027]所述停止重啟單元還用于:所述重啟進程后,采用所述進程的新的PID更新對應的保存的PID。
[0028]本發(fā)明裝置還包括狀態(tài)轉發(fā)單元,用于按照預先設置的第二周期向預先設置的郵件服務器發(fā)送監(jiān)管的進程的狀態(tài)信息,其中,所述狀態(tài)信息至少包括各監(jiān)管的進程的進程名稱、PID和狀態(tài)。
[0029]與現(xiàn)有技術相比,本發(fā)明的技術方案包括:啟動需要監(jiān)管的進程,并保存各進程的進程名稱和進程身份PID ;按照預先設置的第一周期,針對每個監(jiān)管的進程:采集進程的信息;根據(jù)采集到的信息確定進程的狀態(tài);如果進程的狀態(tài)為異常,則停止并重啟進程,如果進程的狀態(tài)為停止,則重啟進程。通過本發(fā)明提供的技術方案,實現(xiàn)了代理端獨自、自動地監(jiān)管進程,有效提高了進程監(jiān)管效率,從而提高了分布式系統(tǒng)的穩(wěn)定性,有效降低了當進程的狀態(tài)不為正常時對分布式系統(tǒng)的用戶體驗的影響。
[0030]本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在說明書、權利要求書以及附圖中所特別指出的結構來實現(xiàn)和獲得。
【專利附圖】
【附圖說明】
[0031]附圖用來提供對本發(fā)明技術方案的進一步理解,并且構成說明書的一部分,與本申請的實施例一起用于解釋本發(fā)明的技術方案,并不構成對本發(fā)明技術方案的限制。
[0032]圖1為本發(fā)明監(jiān)管進程的方法的流程圖;
[0033]圖2為本發(fā)明方法中確定進程的狀態(tài)的流程圖;
[0034]圖3為本發(fā)明監(jiān)管進程的裝置的組成結構示意圖。
【具體實施方式】
[0035]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,下文中將結合附圖對本發(fā)明的實施例進程詳細說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。
[0036]在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0037]圖1為本發(fā)明監(jiān)管進程的方法的流程圖,如圖1所示,包括:
[0038]步驟101:啟動需要監(jiān)管的進程,并保存各進程的進程名稱和進程身份(PID)。
[0039]需要監(jiān)管的進程可以以進程名稱的形式保存在可動態(tài)設置的進程列表中,這樣,本發(fā)明方法可以讀取該進程列表并啟動需要監(jiān)管的進程。
[0040]本步驟中保存各進程的進程名稱和PID,可以將各進程的進程名稱和PID保存到本發(fā)明方法能夠訪問的數(shù)據(jù)庫中。其中,數(shù)據(jù)庫的相關技術為本領域技術人員公知的。
[0041]步驟102:按照預先設置的第一周期,針對每個監(jiān)管的進程;采集進程的信息;根據(jù)采集的信息確定進程的狀態(tài);如果進程的狀態(tài)為異常,則停止并重啟進程;如果進程的狀態(tài)為停止,則重啟進程。其中,
[0042]第一周期可以為秒級的時間,例如I秒、2秒、或10秒等。
[0043]本步驟中的采集進程的信息包括:根據(jù)保存的進程名稱,獲得相應進程的操作系統(tǒng)中的PID。其中,根據(jù)進程名稱獲得相應進程的操作系統(tǒng)中的PID是本領域技術人員公知的。
[0044]圖2為本發(fā)明步驟102中確定進程的狀態(tài)的流程圖,如圖2所示,包括:
[0045]步驟201:判斷獲得PID是否成功,如果失敗,則確定進程的狀態(tài)為停止。其中,獲得PID失敗,說明該進程不在操作系統(tǒng)中運行。
[0046]步驟202:如果成功,則判斷獲得的PID與保存的PID是否相等,如果二者相等,則確定進程的狀態(tài)為正常,如果二者不相等,則確定進程的狀態(tài)為異常。
[0047]其中,獲得PID成功,說明從本發(fā)明方法啟動該進程起,該進程一直在操作系統(tǒng)中運行。
[0048]出現(xiàn)狀態(tài)為異常的進程的原因可以是,該進程由操作系統(tǒng)重啟,而不是由本發(fā)明方法重啟。
[0049]步驟101中的停止進程和重啟進程是根據(jù)預先設置的腳本進行的。其中,腳本可以為本領域技術人員公知的Shell腳本。
[0050]進一步地,
[0051]重啟進程后,本發(fā)明方法還包括采用進程的新的PID更新對應的保存的PID??梢圆捎眠M程名稱和重啟進程后操作系統(tǒng)為該進程分配的新的PID,更新數(shù)據(jù)庫中與該進程名稱對應的PID。
[0052]進一步地,本發(fā)明方法還包括:
[0053]按照預先設置的第二周期向預先設置的郵件服務器發(fā)送監(jiān)管的進程的狀態(tài)信息,其中,狀態(tài)信息至少包括各監(jiān)管的進程的進程名稱、PID和狀態(tài)。這樣,本發(fā)明方法可以支持其他方法或裝置通過上述郵件服務器獲得本發(fā)明方法監(jiān)管的進程的狀態(tài)信息。也就是說,該步驟為其他方法或裝置根據(jù)獲得的上述狀態(tài)信息實現(xiàn)其他功能提供了擴展支持。
[0054]第二周期可以為秒級時間,例如I秒、2秒、或10秒等。
[0055]圖3為本發(fā)明監(jiān)管進程的裝置的組成結構示意圖。如圖3所示,包括進程啟動單元、信息采集單元、狀態(tài)確定單元、和停止重啟單元,其中,
[0056]進程啟動單元,用于啟動需要監(jiān)管的進程,并保存各進程的進程名稱和進程身份PID ;
[0057]信息采集單元,用于按照預先設置的第一周期,針對每個監(jiān)管的進程,采集進程的信息;
[0058]狀態(tài)確定單元,用于根據(jù)來自信息采集單元的采集到的信息確定進程的狀態(tài)為正常、異常、或停止;
[0059]停止重啟單元,用于如果來自狀態(tài)確定單元的進程的狀態(tài)為異常,則停止并重啟進程;如果來自狀態(tài)確定單元的進程的狀態(tài)為停止,則重啟進程。
[0060]信息采集單元具體用于:根據(jù)保存的進程名稱,獲得相應進程的操作系統(tǒng)中的PID。
[0061]狀態(tài)確定單元具體用于:
[0062]如果獲得PID失敗,則確定進程的狀態(tài)為停止;
[0063]如果獲得相PID成功,且獲得的PID與保存的PID相等,則確定進程的狀態(tài)為正常;
[0064]如果獲得PID成功,且獲得的PID與保存的PID不相等,則確定進程的狀態(tài)為異堂巾O
[0065]進一步地,
[0066]停止重啟單元中的停止進程和重啟進程是根據(jù)預先設置的腳本進行的。其中,腳本可以為本領域技術人員公知的Shell腳本。
[0067]進一步地,停止重啟單元還用于:重啟進程后,采用進程的新的PID更新對應的保存的PID。
[0068]進一步地,本發(fā)明裝置還包括狀態(tài)轉發(fā)單元,用于按照預先設置的第二周期向預先設置的郵件服務器發(fā)送監(jiān)管的進程的狀態(tài)信息,其中,狀態(tài)信息至少包括各監(jiān)管的進程的進程名稱、PID和狀態(tài)。
[0069]雖然本發(fā)明所揭露的實施方式如上,但所述的內容僅為便于理解本發(fā)明而采用的實施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬領域內的技術人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實施的形式及細節(jié)上進程任何的修改與變化,但本發(fā)明的專利保護范圍,仍須以所附的權利要求書所界定的范圍為準。
【權利要求】
1.一種監(jiān)管進程的方法,其特征在于,包括: 啟動需要監(jiān)管的進程,并保存各進程的進程名稱和進程身份PID ; 按照預先設置的第一周期,針對每個監(jiān)管的進程:采集進程的信息;根據(jù)采集到的信息確定進程的狀態(tài);如果進程的狀態(tài)為異常,則停止并重啟進程,如果進程的狀態(tài)為停止,則重啟進程。
2.根據(jù)權利要求1所述的方法,其特征在于,所述采集進程的信息包括:根據(jù)保存的進程名稱,獲得相應進程的操作系統(tǒng)中的PID。
3.根據(jù)權利要求2所述的方法,其特征在于,所述確定進程的狀態(tài)包括: 判斷所述獲得PID是否成功,如果失敗,則確定所述狀態(tài)為停止; 如果成功,則判斷所述獲得的PID與所述保存的PID是否相等,如果二者相等,則確定所述狀態(tài)為正常,如果二者不相等,則確定所述狀態(tài)為異常。
4.根據(jù)權利要求1所述的方法,其特征在于,所述停止進程和重啟進程是根據(jù)預先設置的腳本進行的。
5.根據(jù)權利要求1?4任一項所述的方法,其特征在于,所述重啟進程后,該方法還包括:采用所述進程的新的PID更新對應的保存的PID。
6.根據(jù)權利要求1所述的方法,其特征在于,該方法還包括:按照預先設置的第二周期向預先設置的郵件服務器發(fā)送監(jiān)管的進程的狀態(tài)信息,其中,所述狀態(tài)信息至少包括所述進程的進程名稱、PID和狀態(tài)。
7.—種監(jiān)管進程的裝置,其特征在于,包括進程啟動單元、信息采集單元、狀態(tài)確定單元和停止重啟單元,其中, 進程啟動單元,用于啟動需要監(jiān)管的進程,并保存各進程的進程名稱和進程身份PID; 信息采集單元,用于按照預先設置的第一周期,針對每個監(jiān)管的進程,采集進程的信息; 狀態(tài)確定單元,用于根據(jù)來自信息采集單元的采集到的信息確定進程的狀態(tài); 停止重啟單元,用于如果來自狀態(tài)確定單元的進程的狀態(tài)為異常,則停止并重啟進程,如果來自狀態(tài)確定單元的進程的狀態(tài)為停止,則重啟進程。
8.根據(jù)權利要求7所述的裝置,其特征在于,所述信息采集單元具體用于:根據(jù)保存的進程名稱,獲得相應進程的操作系統(tǒng)中的PID。
9.根據(jù)權利要求8所述的裝置,其特征在于,所述狀態(tài)確定單元具體用于: 如果所述獲得PID失敗,則確定所述進程的狀態(tài)為停止; 如果所述獲得PID成功,且所述獲得的PID與所述保存的PID相等,則確定所述進程的狀態(tài)為正常; 如果所述獲得PID成功,且所述獲得的PID與所述保存的PID不相等,則確定所述進程的狀態(tài)為異常。
10.根據(jù)權利要求7所述的裝置,其特征在于,所述停止重啟單元中的停止進程和重啟進程是根據(jù)預先設置的腳本進行的。
11.根據(jù)權利要求7?10任一項所述的裝置,其特征在于,所述停止重啟單元還用于:所述重啟進程后,采用所述進程的新的PID更新對應的保存的PID。
12.根據(jù)權利要求7所述的裝置,其特征在于,該裝置還包括狀態(tài)轉發(fā)單元,用于按照預先設置的第二周期向預先設置的郵件服務器發(fā)送監(jiān)管的進程的狀態(tài)信息,其中,所述狀態(tài)信息至少包括各監(jiān)管的進程的進程名稱、PID和狀態(tài)。
【文檔編號】G06F11/36GK104199772SQ201410444061
【公開日】2014年12月10日 申請日期:2014年9月2日 優(yōu)先權日:2014年9月2日
【發(fā)明者】張國磊, 吳楠, 王恩東, 胡雷鈞 申請人:浪潮(北京)電子信息產業(yè)有限公司