背景:
項目中遇到有些腳本需要通過后臺進(jìn)程運行,保證不被異常中斷,之前都是通過nohup、&、screen來實現(xiàn),帶著能否做一個start/stop/restart/reload的服務(wù)啟動的想法找到里Supervisor。關(guān)于supervisor的介紹在網(wǎng)上大致搜索總結(jié)如下:
Supervisor是用Python開發(fā)的一套通用的進(jìn)程管理程序,能將一個普通的命令行進(jìn)程變?yōu)楹笈_daemon,并監(jiān)控進(jìn)程狀態(tài),異常退出時能自動重啟。它是通過fork/exec的方式把這些被管理的進(jìn)程當(dāng)作supervisor的子進(jìn)程來啟動,這樣只要在supervisor的配置文件中,把要管理的進(jìn)程的可執(zhí)行文件的路徑寫進(jìn)去即可。也實現(xiàn)當(dāng)子進(jìn)程掛掉的時候,父進(jìn)程可以準(zhǔn)確獲取子進(jìn)程掛掉的信息的,可以選擇是否自己啟動和報警。supervisor還提供了一個功能,可以為supervisord或者每個子進(jìn)程,設(shè)置一個非root的user,這個user就可以管理它對應(yīng)的進(jìn)程。
說明:
1:easy_install 安裝: easy_install supervisor2:pip 安裝: pip install supervisor3:Debian / Ubuntu可以直接通過apt安裝: apt-get install supervisor
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式