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)了?比如說(shuō),我們的某個(gè)服務(wù)器軟件,在上線后出現(xiàn)一個(gè)嚴(yán)重的bug,該bug雖然很難出現(xiàn),但是只要一出現(xiàn),整個(gè)服務(wù)都會(huì)停掉(進(jìn)程沒(méi)有崩潰,只是不再提供服務(wù))。此時(shí),重啟服務(wù)軟件,又會(huì)開(kāi)始正常工作。
對(duì)于這樣嚴(yán)重的bug,必須要查清楚并解決掉的。但是,基于以下兩個(gè)原因:
(1)系統(tǒng)已經(jīng)對(duì)用戶開(kāi)放,服務(wù)不能停。不可能說(shuō)系統(tǒng)先下線,直到bug被解決掉后再重新上線。
(2)bug很難重現(xiàn),可能需要加日志,不斷地跟蹤排查,這很可能是一場(chǎng)持久戰(zhàn)。
為了讓系統(tǒng)繼續(xù)線上運(yùn)行,在bug解決之前,必須要保證系統(tǒng)停止服務(wù)之后,能迅速重新啟動(dòng)恢復(fù)服務(wù)。此時(shí),使用進(jìn)程守護(hù)系統(tǒng)是最恰當(dāng)不過(guò)的了。
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ù)者對(duì)被守護(hù)進(jìn)程的管理使用的是心跳機(jī)制,其原理描述如下:
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線安全]玩轉(zhuǎn)無(wú)線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26