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