欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種對操作系統(tǒng)中重要進程進行檢測和復(fù)位的方法

文檔序號:6371758閱讀:247來源:國知局
專利名稱:一種對操作系統(tǒng)中重要進程進行檢測和復(fù)位的方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種檢測和復(fù)位的方法,尤其是涉及一種基于操作系統(tǒng)內(nèi)核實現(xiàn)的通過計算機前面板特定按鈕對操作系統(tǒng)中重要進程進行檢測和復(fù)位的方法,屬于計算機應(yīng)用領(lǐng)域。
背景技術(shù)
當(dāng)計算機被用作提供特定信息服務(wù)時,計算機操作系統(tǒng)中運行的服務(wù)程序是否正常、持續(xù)的運行對于計算機用戶來說是非常重要的。但是檢測操作系統(tǒng)中特定的服務(wù)程序是否正確運行,以及在運行異常時對該服務(wù)復(fù)位(重新運行),這里的復(fù)位即指重新啟動用戶指定的特定重要進程。這樣的操作對于沒有太多計算機使用經(jīng)驗的用戶來說是比較復(fù)雜的。
現(xiàn)在的計算機在操作的易用性上還遠沒有滿足普通用戶的需求,對于計算機操作系統(tǒng),尤其是服務(wù)器操作系統(tǒng)的操作,仍然需要用戶具有較高的專業(yè)技術(shù)技能方能正確操作。對于服務(wù)器計算機管理中,關(guān)鍵應(yīng)用程序的運行健康狀況對于計算機管理人員而言是非常重要的工作內(nèi)容。就目前的各種計算機操作系統(tǒng),檢測計算機操作系統(tǒng)中關(guān)鍵應(yīng)用程序的運行狀態(tài)、并在運行錯誤時重新啟動這些關(guān)鍵應(yīng)用程序,仍然要求管理員具有相當(dāng)豐富的計算機操作技術(shù)方能完成這些操作。
如果有一種簡便可靠的方法能夠及時、準確的檢測計算機中關(guān)鍵進程的運行狀態(tài),并在關(guān)鍵進程停止運行的時候能夠簡便可靠的重新啟動這些進程,并且這些操作方式非常簡單,以至于沒有太多計算機使用經(jīng)驗的管理員也可以正確的完成這些操作,那么就可以大大降低對計算機管理員的技術(shù)水平要求,降低企業(yè)、單位的IT設(shè)備管理人力資源成本。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提出一種對操作系統(tǒng)中重要進程進行檢測和復(fù)位的方法,使得用戶僅僅通過操作一個特定的按鈕,就可以完成對操作系統(tǒng)中重要服務(wù)進程進行檢測或復(fù)位操作。
本發(fā)明所述一種對操作系統(tǒng)中重要進程進行檢測和復(fù)位的方法,包括如下步驟按照ACPI標(biāo)準規(guī)范,編寫內(nèi)核模塊,將該內(nèi)核模塊加入到運行在這個計算機上的操作系統(tǒng)內(nèi)核中,以接管計算機系統(tǒng)的電源管理;將特定按鈕的引腳接到計算機主板的電源跳線上,按下所述特定按鈕,內(nèi)核模塊就會探測到電源跳線發(fā)生了通斷變化,然后將每一次通斷變化發(fā)送消息給運行在用戶空間的后臺程序;后臺程序接收按鍵消息事件,判斷用戶是要進行進程檢測,還是進程復(fù)位,進行相應(yīng)的進程檢測或進程復(fù)位處理。
本發(fā)明提出一種非常簡單的方法,可以檢測計算機操作系統(tǒng)中關(guān)鍵進程是否正常運行,并在某些關(guān)鍵進程停止運行的情況下讓用戶對這些進程復(fù)位(即重新啟動)。用戶只要通過計算機前面板上一個特定的按鈕,就可以檢測計算機操作系統(tǒng)中關(guān)鍵進程的運行狀況,并在運行停止時對這些關(guān)鍵進程復(fù)位(即重新啟動)。這樣一來,即使一個非常普通的用戶也可以完成管理計算機系統(tǒng)的關(guān)鍵應(yīng)用程序的操作了。這對于中小學(xué)校和其它缺乏經(jīng)驗豐富的計算機操作人員的企事業(yè)單位降低系統(tǒng)維護人員成本,具有非常顯著的經(jīng)濟意義。
采用本發(fā)明所述方法,極大地方便普通的計算機用戶進行應(yīng)用程序的檢測和復(fù)位,這樣提高了計算機特別是作為服務(wù)器使用的計算機的易用性,特別是可降低對服務(wù)器管理人員的技術(shù)要求,在一定程度上節(jié)省計算機網(wǎng)絡(luò)的管理費用。本發(fā)明所述方法可廣泛應(yīng)用于各種計算機操作系統(tǒng)。


圖1是本發(fā)明所述方法的整體流程圖;圖2是本發(fā)明所述方法中的內(nèi)核模塊的處理流程圖。
具體實施例方式
如前所述,本發(fā)明要解決的技術(shù)問題是方便用戶及時檢查處理操作系統(tǒng)中特定的服務(wù)程序是否正確運行,因此,本發(fā)明提出了一鍵處理的方式。首先在操作系統(tǒng)上安裝可以響應(yīng)用戶按鍵的軟件,該軟件可以檢測到用戶的按鍵動作,并且通過設(shè)置計算機蜂鳴器發(fā)聲對按鍵動作響應(yīng),并進行相應(yīng)操作;其次用戶需要在計算機上通過一個配置軟件,將特定的重要進程的名稱配置到需要進行檢測和復(fù)位操作的進程集中。然后通過按鍵就可以對進程集中的進程同時進行檢測和復(fù)位操作。
下面以Linux操作系統(tǒng)為例,具體描述本發(fā)明的基本原理。
一般來說,當(dāng)前主流的計算機系統(tǒng)都符合ACPI(AdvancedConfiguration and Power Interface高級配置和電源接口)標(biāo)準,這樣,可以編寫一個遵循ACPI標(biāo)準的內(nèi)核模塊,加入到運行在這個計算機上的操作系統(tǒng)內(nèi)核中,以便接管計算機系統(tǒng)的電源管理;將特定按鈕的引腳接到計算機主板的Power(電源)跳線上,當(dāng)按下這個按鈕時,內(nèi)核模塊就會探測到Power(電源)跳線發(fā)生了通斷變化,內(nèi)核模塊就會將每一次通斷變化如實的發(fā)送消息給運行在用戶空間的后臺程序。后臺程序通過判斷每一次按鍵消息的間隔時間,判斷用戶是要進行進程檢測,還是進程復(fù)位,或這是一次予以忽略的誤操作。然后后臺程序根據(jù)判斷出的用戶操作,進行進程檢測或進程復(fù)位,并設(shè)置計算機的蜂鳴器發(fā)出不同的聲音響應(yīng)用戶這次操作的結(jié)果。
圖1給出的總體流程圖中,是按照以下的流程工作的
用戶按一次該按鈕時,就會發(fā)生一次主板Power(電源)跳線的通斷事件。由于內(nèi)核模塊是遵循ACPI規(guī)范編寫的,它可以捕捉到這個跳線通斷事件,從而判斷用戶是否按下了前面板上的這個按鈕;當(dāng)然,也可以將這個按鈕的引線連接到主板的串口或并口的引腳上,然后判斷串口或并口引腳的電源通斷事件。
內(nèi)核模塊發(fā)現(xiàn)了按鈕事件后,向用戶空間的后臺程序發(fā)送用戶按鍵事件的消息;該應(yīng)用程序收到了用戶按鍵事件的消息后,對該消息進行如下的判斷如果本次按鍵與上次按鍵的時間間隔是否超過3秒鐘?如果是,則檢查進程集的進程是否正常運行,如果不是,則表示用戶要對進程集的進程進行復(fù)位操作。關(guān)于對按鍵的兩次時間間隔是否超過3秒鐘的判斷,本文將在后面作出具體說明。
檢查進程集的進程是否正常運行時,如果正常,應(yīng)用程序不做任何響應(yīng),等待接收下次按鍵事件;如果不正常,應(yīng)用程序控制計算機的蜂鳴器連續(xù)發(fā)出5秒鐘提示音,提示用戶進程異常。
進行復(fù)位操作包括讀取進程集的配置文件,針對普通程序和服務(wù)程序分別處理重新啟動,這些進程都處理完后,應(yīng)用程序控制計算機的蜂鳴器發(fā)出1秒鐘提示音,提示用戶進程復(fù)位操作成功。
圖2給出的是內(nèi)核模塊是如何發(fā)現(xiàn)按鍵事件并向應(yīng)用程序發(fā)送消息的工作原理。
一旦用戶按下前面板上的這個按鈕,主板上的Power(電源)跳線就會發(fā)生一次通斷事件,也就是跳線的兩個引腳被接通并斷開一次。
在支持ACPI規(guī)范的操作系統(tǒng)中,操作系統(tǒng)內(nèi)核都會查詢并維護ACPI事件隊列。在Linux操作系統(tǒng)中,ACPI隊列是一個保存在內(nèi)核空間的名為acpi_bus_event_list的鏈表。該鏈表中保存了當(dāng)前系統(tǒng)中各個ACPI電源管理對象發(fā)生的事件,例如當(dāng)用戶按下前面板上特定的按鈕之后,就會導(dǎo)致主板的Power(電源)跳線發(fā)生一次通斷,這時操作系統(tǒng)就會發(fā)現(xiàn)這個事件,然后在ACPI事件隊列中加入一個節(jié)點,將這個電源按鈕事件加入到隊列中。這里要注意的是,在內(nèi)核中維護了一個整型的全局變量event_is_open設(shè)置為1,否則操作系統(tǒng)不會將事件加入到ACPI事件隊列中。
參見圖2,內(nèi)核模塊加入操作系統(tǒng)內(nèi)核后,進行初始化,event_is_open設(shè)置為1;接著,查詢ACPI事件隊列,搜索新事件;發(fā)現(xiàn)新事件后,判斷是否屬于由主板電源跳線引起的通斷事件,如果不是,則不作處理,繼續(xù)搜索;如果是,則向用戶空間的進程發(fā)送用戶按鍵事件的消息。
為了不增加操作系統(tǒng)中CPU的負載,內(nèi)核模塊在每一次輪詢檢查ACPI事件隊列后,會調(diào)用sleep_on_timeout函數(shù),以保證有100毫秒間隔。
上述向用戶空間的后臺程序進程發(fā)送用戶按鍵事件的消息,其具體實現(xiàn)介紹如下內(nèi)核模塊利用Linux操作系統(tǒng)內(nèi)核的Proc文件系統(tǒng)機制在Linux文件系統(tǒng)中的/proc/acpi目錄下創(chuàng)建一個名為butonclick的文件,當(dāng)這個內(nèi)核模塊被加載到Linux內(nèi)核中的時候,文件/proc/acpi/buttonclick將自動生成。然后用戶空間的后臺進程通過阻塞的方式來讀取這個文件。當(dāng)用戶空間的后臺進程調(diào)用read系統(tǒng)調(diào)用讀取文件/proc/acpi/buttonclick時,內(nèi)核模塊(buttonclick)會啟動一個內(nèi)核線程proc_buttonclick_read,來為此read系統(tǒng)調(diào)用服務(wù)。這個內(nèi)核線程以輪詢的方式檢查ACPI事件隊列中是否存在新的事件,并且這個事件是電源按鈕事件。當(dāng)ACPI事件隊列中沒有電源按鈕事件時,用戶空間的后臺進程就會一直被阻塞。當(dāng)在某一次輪詢過程中發(fā)現(xiàn)ACPI事件隊列中有一個事件是電源按鈕事件,就會生成一個固定內(nèi)容的字符串“BUTTONCLICK”,然后把這個字符串返回給用戶空間的后臺進程,這樣后臺進程的這一次讀取/proc/acpi/buttonclick文件的過程就結(jié)束了。當(dāng)后臺進程從讀取/proc/acpi/buttonclick文件的系統(tǒng)調(diào)用中返回時,通過比較讀取的內(nèi)容是否為“BUTTONCLICK”,就可以判斷是否為內(nèi)核模塊(buttonclick)發(fā)送過來的用戶按了一次前面板特定按鈕的按鍵操作。這樣一來,內(nèi)核模塊就將捕捉到的用戶按鍵事件發(fā)送給運行在用戶空間的后臺進程了。
以上介紹了本發(fā)明的基本原理,下面結(jié)合圖1和圖2,進一步說明本發(fā)明用戶空間的后臺程序處理用戶按鍵事件的具體原理。
用戶要對某些特定的程序進行檢測或復(fù)位操作,必須將這些程序?qū)懙竭M程集里面,因此要首先設(shè)定該進程集。進程集的設(shè)置是這樣的用戶將要進行檢測或復(fù)位操作的進程在磁盤上保存的絕對路徑都寫到一個文本文件中,一行一個。然后用戶空間的后臺進程通過讀取這個文件的內(nèi)容,就知道它要操作的進程集里面有哪些進程了。對于屬于操作系統(tǒng)服務(wù)進程的進程,可以在進程名稱前加service前綴,如果是普通進程,就直接寫名字。
這里,假設(shè)進程集里有兩個進程,一個是操作系統(tǒng)中的郵件服務(wù)器進程sendmail,一個是普通的進程top,那么在文本文件中就按照如下格式編寫service/usr/sbin/sendmail/usr/bin/top當(dāng)用戶空間的后臺進程讀取此文件時,發(fā)現(xiàn)前綴sendmail的是service,那么在進行進程復(fù)位的時候,會調(diào)用shell命令,以“servicesendmail restart”的方式來重新啟動sendmail進程;當(dāng)發(fā)現(xiàn)普通進程top時,在進行進程復(fù)位的操作時,僅僅是簡單的啟動這個進程“/usr/bin/top”。這樣在進程復(fù)位時將服務(wù)進程和普通進程區(qū)別開來,有利于服務(wù)進程在復(fù)位操作中的穩(wěn)定性。
寫在這個文件中的所有進程,就成為用戶要進行檢測和復(fù)位操作的進程集,這樣一來通過修改配置文件,就實現(xiàn)了對進程集的配置。
用戶在檢測和復(fù)位操作時,需要啟動按鈕操作,本發(fā)明中,按鈕操作有如下的定義方式(1)只按下一次按鈕表示用戶要檢查進程集中的進程是否都運行正常。
(2)間隔3秒鐘內(nèi)按下兩次按鈕表示用戶要將進程集中的所有進程都進行復(fù)位(重新啟動)操作。
本發(fā)明中,對應(yīng)按鈕操作,計算機的蜂鳴器響應(yīng)也有如下定義方式(1)用戶只按下一次按鈕后,如果蜂鳴器不發(fā)出任何響聲,表示檢測結(jié)果是進程集中的所有重要進程都運行良好。
(2)用戶只按下一次按鈕后,如果蜂鳴器連續(xù)發(fā)出5秒鐘的蜂鳴聲,表示檢測結(jié)果是進程集中的某些進程運行故障,或者被鎖死了,或者已經(jīng)停止運行了。
(3)用戶在3秒鐘內(nèi)按下兩次按鈕后,如果蜂鳴器發(fā)出1秒鐘的短暫蜂鳴聲,表明計算機已經(jīng)響應(yīng)了用戶要求對進程集中的所有進程進行復(fù)位(重新啟動)的操作,并且操作成功。
對于進程檢測,進程檢測的方法根據(jù)操作系統(tǒng)的不同,其實現(xiàn)細節(jié)會有所不同,在Linux下主要是通過查找proc文件系統(tǒng)實現(xiàn)的。在Linux下判斷一個特定進程是否運行正常分為兩步1,判斷這個進程是否還在操作系統(tǒng)當(dāng)中運行;2,如果這個進程在操作系統(tǒng)中運行,還要進一步判斷這個進程是否運行正常。只有在這個進程在操作系統(tǒng)中運行,并且運行狀態(tài)為正常的情況下,才能判定這個進程運行正常。
在Linux的proc文件系統(tǒng)中,當(dāng)進入/proc目錄時,會發(fā)現(xiàn)這個目錄下有許多以數(shù)字為名字的子目錄,這些子目錄中都記載了操作系統(tǒng)中每一個進程的詳細狀態(tài)信息,而作為子目錄名稱的這個數(shù)字,就是對應(yīng)進程在操作系統(tǒng)中的進程ID。
例如當(dāng)前系統(tǒng)中運行的sendmail進程的ID是569,那么/proc目錄下就會存在一個名稱為569的子目錄,進入這個目錄,就會發(fā)現(xiàn)該目錄下有一個名為exe的符號連接文件(symbol link),通過“l(fā)s 1”命令可以看到這個exe符號連接文件所指向的路徑是“/usr/sbin/sendmail”,這就是sendmail進程保存在磁盤中的鏡像,與設(shè)置在進程集文本文件中的路徑是相同的(這是因為他們都指向磁盤中的同一個進程鏡像文件/usr/sbin/sendmail)。
運行在用戶空間的后臺守護進程,就是通過將進程集的某一個進程與/proc目錄下代表系統(tǒng)中每一個進程的子目錄中的exe符號連接所指向的路徑進行比較,來判斷進程集中的這個進程是否正在運行之中。
如果/proc目錄下某一個以進程ID命令的子目錄中的exe符號連接指向的路徑與進程集設(shè)置文件中某個特定進程的路徑相同,那就說明進程集中的這個進程還在操作系統(tǒng)當(dāng)中運行。
如果將/proc目錄下所有以進程ID命名的目錄都遍歷完之后,還沒有找到進程集中的這個進程,那就說明進程集中的這個進程已經(jīng)異常退出操作系統(tǒng)了。
當(dāng)運行在用戶空間的后臺守護進程完成進程集中所有進程的掃描后,發(fā)現(xiàn)進程集中的某些進程沒有在操作系統(tǒng)中找到,就會設(shè)置計算機發(fā)出5秒鐘的蜂鳴聲提示用戶進程集里的某些進程運行出現(xiàn)了異常。
但是,還不能夠因為/proc目錄下某一個進程目錄中的exe符號連接指向的磁盤路徑同進程集配置文件中的磁盤路徑相同,就斷定這個進程運行正常了。因為在某些情況下,這個進程可能仍然在操作系統(tǒng)中,但是由于某些意外原因?qū)е逻M程被鎖死,成為一個僵死(zombie)進程。這種情況下,雖然在/proc目錄中可以找到對應(yīng)的進程目錄,但是這個進程已經(jīng)死掉了。
因此,如果在/proc目錄中找到了和進程集中某個進程對應(yīng)的進程目錄后,還不能立即判斷這個進程是運行正常的,還要查看這個進程的狀態(tài)是否為僵死(zombie),如果這個進程不是僵死進程,運行在用戶空間的后臺守護進程才能判斷這個進程運行正常。
下面,說明判斷一個進程運行狀態(tài)是否正常的方法。
當(dāng)用戶空間的后臺守護進程找到了同進程集的配置文件(就是前面提到的那個保存著進程對應(yīng)的磁盤路徑的文本文件)中某一個特定進程磁盤路徑相同的進程在/proc目錄下對應(yīng)的子目錄時,進入這個子目錄,除了能夠發(fā)現(xiàn)exe符號連接文件之外,還有一個名為status的文件,這個文件記錄了當(dāng)前進程的運行狀態(tài)。響應(yīng)用戶按鍵操作的用戶空間的后臺守護進程還需要查找這個文件中的內(nèi)容判斷當(dāng)前進程是否運行正常。這個文件的頭兩行內(nèi)容如下NamesendmailStateS(sleeping)……第一行說明了進程的名字(但還不能以這個名字作為判斷進程是否還在操作系統(tǒng)中的依據(jù),因為其并不包含磁盤鏡像文件的絕對路徑,無法避免進程名字相同但功能不同的情況),第二行說明了進程的運行狀態(tài)。這里,S(sleeping)說明進程運行良好,目前處于睡眠(sleeping)狀態(tài)??赡艹霈F(xiàn)的狀態(tài)文字有以下五種D說明進程進入不可中斷的睡眠(往往由于I/O阻塞引起)。
R說明進程處于正在運行的狀態(tài)。
S說明進程正在睡眠。
T說明這個進程被跟蹤或被停止(往往由調(diào)試程序debug工具引起)。
Z說明這個程序已經(jīng)僵死,被掛起鎖死了。
以上五種狀態(tài)中,T狀態(tài)只有在使用調(diào)試程序debug工具時才會出現(xiàn),正常運行的系統(tǒng)中不會出現(xiàn),因此可以不考慮這種狀態(tài)。Z狀態(tài)說明進程雖然還在操作系統(tǒng)當(dāng)中,但是已經(jīng)僵死不在正常運行了,當(dāng)這種狀態(tài)出現(xiàn)時,用戶空間的后臺進程就會認為這個進程已經(jīng)僵死了,屬于不正常運行,會設(shè)置計算機發(fā)出5秒鐘的蜂鳴聲提示用戶進程集中的某些進程運行異常。
按照如上步驟,運行在用戶空間的后臺守護進程就可以判斷出進程集里的進程是否都運行正常了。
復(fù)位操作的原理是這樣的如果用戶檢測到進程集中有進程運行不正常了,可以進行進程復(fù)位操作,將進程集中的所有進程都重新啟動一遍,這樣所有的進程就又運行正常了。
進程復(fù)位就是將進程集里的每一個進程先停止,然后再重新啟動。由于服務(wù)進程不同于一般普通進程,因此無論是在哪種類型的操作系統(tǒng)下,對于服務(wù)進程都必須使用不同于普通進程的方法來停止和啟動,這樣才能確保服務(wù)進程在復(fù)位操作中的穩(wěn)定性。在Linux操作系統(tǒng)下,服務(wù)進程可以使用service命令來停止和啟動,而普通進程可以直接使用killall命令來停止,然后直接運行進程集配置文件中指明的文件路徑就可以。
最后所應(yīng)說明的是以上實施例僅用以說明而非限制本發(fā)明的技術(shù)方案,盡管參照上述實施例對本發(fā)明進行了詳細說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解依然可以對本發(fā)明進行修改或者等同替換,而不脫離本發(fā)明的精神和范圍的任何修改或局部替換,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1.一種對操作系統(tǒng)中重要進程進行檢測和復(fù)位的方法,其特征在于,包括如下步驟按照ACPI標(biāo)準規(guī)范,編寫內(nèi)核模塊,將該內(nèi)核模塊加入到運行在這個計算機上的操作系統(tǒng)內(nèi)核中,以接管計算機系統(tǒng)的電源管理;將特定按鈕的引腳接到計算機主板的電源跳線上,按下所述特定按鈕,內(nèi)核模塊就會探測到電源跳線發(fā)生了通斷變化,然后將每一次通斷變化發(fā)送消息給運行在用戶空間的后臺程序;后臺程序接收按鍵消息事件,判斷用戶是要進行進程檢測,還是進程復(fù)位,進行相應(yīng)的進程檢測或進程復(fù)位處理。
2.根據(jù)權(quán)利要求1所述的對操作系統(tǒng)中重要進程進行檢測和復(fù)位的方法,其特征在于,所述內(nèi)核模塊探測電源跳線的通斷變化,包括電源跳線每發(fā)生一次通斷,操作系統(tǒng)就會發(fā)現(xiàn)這個事件,然后在ACPI事件隊列中加入一個節(jié)點,將該事件加入到隊列中;內(nèi)核模塊通過輪詢ACPI事件隊列,發(fā)現(xiàn)新事件并作出相應(yīng)的處理。
3.根據(jù)權(quán)利要求2所述的對操作系統(tǒng)中重要進程進行檢測和復(fù)位的方法,其特征在于,發(fā)現(xiàn)新事件后,判斷是否屬于由主板電源跳線引起的通斷事件,如果不是,則不作處理,繼續(xù)搜索;如果是,則向用戶空間的進程發(fā)送用戶按鍵事件的消息。
4.根據(jù)權(quán)利要求2或3所述的對操作系統(tǒng)中重要進程進行檢測和復(fù)位的方法,其特征在于,內(nèi)核模塊在每一次輪詢檢查ACPI事件隊列后,調(diào)用休眠函數(shù)sleep_on_timeout,以保證有100毫秒間隔。
5.根據(jù)權(quán)利要求4所述的對操作系統(tǒng)中重要進程進行檢測和復(fù)位的方法,其特征在于,所述內(nèi)核模塊將每一次通斷變化發(fā)送消息給運行在用戶空間的后臺程序,包括內(nèi)核線程以輪詢的方式發(fā)現(xiàn)ACPI事件隊列中有一個事件是電源按鈕事件,生成一個固定內(nèi)容的字符串,然后把這個字符串返回給用戶空間的后臺進程。
6.根據(jù)權(quán)利要求1所述的對操作系統(tǒng)中重要進程進行檢測和復(fù)位的方法,其特征在于,所述后臺程序接收按鍵消息事件,還包括建立進程集,用戶將要進行檢測或復(fù)位操作的進程在磁盤上保存的絕對路徑寫到一個文本文件中;用戶空間的后臺進程通過讀取這個文件的內(nèi)容,獲知進程集里面有哪些進程。
7.根據(jù)權(quán)利要求1、2、3、5或6所述的對操作系統(tǒng)中重要進程進行檢測和復(fù)位的方法,其特征在于,所述進程檢測,包括首先判斷這個進程是否還在操作系統(tǒng)當(dāng)中運行;如果這個進程在操作系統(tǒng)中運行,還要進一步判斷這個進程是否運行正常。
8.根據(jù)權(quán)利要求7所述的對操作系統(tǒng)中重要進程進行檢測和復(fù)位的方法,其特征在于,所述判斷進程是否還在操作系統(tǒng)當(dāng)中運行,由運行在用戶空間的后臺守護進程通過將進程集的某一個進程與/proc目錄下代表系統(tǒng)中每一個進程的子目錄中的exe符號連接所指向的路徑進行比較,來判斷這個進程是否正在運行之中。
9.根據(jù)權(quán)利要求8所述的對操作系統(tǒng)中重要進程進行檢測和復(fù)位的方法,其特征在于如果/proc目錄下某一個以進程ID命令的子目錄中的exe符號連接所指向的路徑與進程集設(shè)置文件中某個特定進程的路徑相同,那就說明進程集中的這個進程還在操作系統(tǒng)當(dāng)中運行;如果將/proc目錄下所有以進程ID命名的目錄都遍歷完之后,還沒有找到進程集中的這個進程,那就說明進程集中的這個進程已經(jīng)異常退出操作系統(tǒng)了。
10.根據(jù)權(quán)利要求7所述的對操作系統(tǒng)中重要進程進行檢測和復(fù)位的方法,其特征在于,通過用戶空間的后臺守護進程需要查找狀態(tài)文件中的內(nèi)容,來判斷當(dāng)前進程是否運行正常。
11.根據(jù)權(quán)利要求10所述的對操作系統(tǒng)中重要進程進行檢測和復(fù)位的方法,其特征在于,所述狀態(tài)文件中的內(nèi)容,有以下五種D說明進程進入不可中斷的睡眠;R說明進程處于正在運行的狀態(tài);S說明進程正在睡眠;T說明這個進程被跟蹤或被停止;Z說明這個程序已經(jīng)僵死,被掛起鎖死了。
12.根據(jù)權(quán)利要求1、2、3、5或6所述的對操作系統(tǒng)中重要進程進行檢測和復(fù)位的方法,其特征在于,所述進程復(fù)位,先判斷是服務(wù)進程還是普通進程,使用相應(yīng)的命令來停止和啟動進程,然后直接進程集配置文件中指明的文件路徑啟動進程。
全文摘要
本發(fā)明公開了一種對操作系統(tǒng)中重要進程進行檢測和復(fù)位的方法,包括按照ACPI標(biāo)準規(guī)范,編寫內(nèi)核模塊,將該內(nèi)核模塊加入到運行在這個計算機上的操作系統(tǒng)內(nèi)核中;將特定按鈕的引腳接到計算機主板的電源跳線上,按下所述特定按鈕,內(nèi)核模塊就會探測到電源跳線發(fā)生了通斷變化,然后將每一次通斷變化發(fā)送消息給運行在用戶空間的后臺程序;后臺程序接收按鍵消息事件,判斷用戶是要進行進程檢測,還是進程復(fù)位,進行相應(yīng)的進程檢測或進程復(fù)位處理。采用本發(fā)明,極大地方便普通的計算機用戶進行應(yīng)用程序的檢測和復(fù)位,可降低對服務(wù)器管理人員的技術(shù)要求,從而節(jié)省計算機網(wǎng)絡(luò)的維護管理費用,本發(fā)明所述方法可廣泛應(yīng)用于各種計算機操作系統(tǒng)。
文檔編號G06F11/36GK1567233SQ03147719
公開日2005年1月19日 申請日期2003年6月24日 優(yōu)先權(quán)日2003年6月24日
發(fā)明者李勇 申請人:聯(lián)想(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
镇坪县| 平果县| 天柱县| 闽清县| 怀安县| 英山县| 衡水市| 青冈县| 那曲县| 乌鲁木齐市| 米林县| 阳城县| 邛崃市| 衡水市| 安国市| 彩票| 博野县| 建平县| 许昌市| 乌恰县| 鄂托克前旗| 资阳市| 沾化县| 长武县| 青龙| 嘉荫县| 嘉鱼县| 石楼县| 永善县| 南充市| 汉川市| 梅河口市| 南昌市| 太仆寺旗| 青川县| 谷城县| 通许县| 富锦市| 伽师县| 新余市| 拜泉县|