1.什么是進(jìn)程守護(hù)系統(tǒng)?

進(jìn)程守護(hù)系統(tǒng),用于監(jiān)控指定的進(jìn)程,當(dāng)發(fā)現(xiàn)目標(biāo)進(jìn)程不再正常工作時(shí),就關(guān)閉該進(jìn)程,并重啟它。

在什么情況下使用進(jìn)程守護(hù)系統(tǒng)了?比如說,我們的某個(gè)服務(wù)器軟件,在上線后出現(xiàn)一個(gè)嚴(yán)重的bug,該bug雖然很難出現(xiàn),但是只要一出現(xiàn),整個(gè)服務(wù)都會(huì)停掉(進(jìn)程沒有崩潰,只是不再提供服務(wù))。此時(shí),重啟服務(wù)軟件,又會(huì)開始正常工作。

對于這樣嚴(yán)重的bug,必須要查清楚并解決掉的。但是,基于以下兩個(gè)原因:

(1)系統(tǒng)已經(jīng)對用戶開放,服務(wù)不能停。不可能說系統(tǒng)先下線,直到bug被解決掉后再重新上線。

(2)bug很難重現(xiàn),可能需要加日志,不斷地跟蹤排查,這很可能是一場持久戰(zhàn)。

  為了讓系統(tǒng)繼續(xù)線上運(yùn)行,在bug解決之前,必須要保證系統(tǒng)停止服務(wù)之后,能迅速重新啟動(dòng)恢復(fù)服務(wù)。此時(shí),使用進(jìn)程守護(hù)系統(tǒng)是最恰當(dāng)不過的了。

OrayGuard就是為達(dá)到這一目的,實(shí)現(xiàn)了一個(gè)進(jìn)程守護(hù)系統(tǒng)。一個(gè)守護(hù)者程序,可以守護(hù)同一臺(tái)機(jī)器上的多個(gè)進(jìn)程。

 

2.進(jìn)程守護(hù)系統(tǒng)的實(shí)現(xiàn)及使用

OrayGuard守護(hù)者對被守護(hù)進(jìn)程的管理使用的是心跳機(jī)制,其原理描述如下:

網(wǎng)友評論