服務(wù)掛了,怎么自動(dòng)恢復(fù)?
上周有個(gè)朋友問我:
- tomcat掛了,站點(diǎn)死了;
- service出core了,服務(wù)死了;
如何讓掛掉的服務(wù)自動(dòng)啟動(dòng)呢?
這里給大伙推薦一個(gè)常見的運(yùn)維工具 supervisor。
supervisor是什么?
用Python開發(fā)的通用的進(jìn)程管理工具。
supervisor有什么用?
supervisor能把一個(gè)普通進(jìn)程變?yōu)楹笈_(tái)daemon進(jìn)程,并監(jiān)控進(jìn)程狀態(tài),在進(jìn)程異常退出時(shí)能夠自動(dòng)重啟(或者告警),同時(shí)還提供一些相關(guān)的管理功能。
supervisor是怎么做到的?
supervisor通過fork/exec的方式,把被管理的進(jìn)程當(dāng)作其子進(jìn)程來啟動(dòng),在被管理的子進(jìn)程異常退出時(shí)(例如tomcat出異常掛掉,或者服務(wù)出core掛掉,或者收到異常信號(hào)掛掉),作為父進(jìn)程可以獲取相關(guān)信息,以選擇后續(xù)如何處理。
之前沒用過supervisor,這玩意是否靠譜?
supervisor誕生10年以上了,絕對(duì)靠譜,絕大部分運(yùn)維同學(xué)都熟知它。
畫外音:supervisor是很常見的運(yùn)維工具,以下幾個(gè)小問題旨在讓不熟悉的同學(xué)簡(jiǎn)單了解相關(guān)原理,獻(xiàn)丑了。
希望沒有浪費(fèi)這一分鐘。
【本文為51CTO專欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】