旗魚云梯Linux Supervisor進程管理器

supervisor就是用Python開發(fā)的一套通用的進程管理程序,能將一個普通的命令行進程變?yōu)楹笈_運行進程,并監(jiān)控進程狀態(tài),異常退出時能自動重啟。
Supervisord將通過fork/exec的方式把這些被管理的進程當作supervisor的子進程來啟動,并且在程序以外中止后,迅速自動重新啟動它們,不用在自己編寫腳本來監(jiān)控程序是否正常運行,非常方便。
Supervisord可以很方便的獲取進程運行狀態(tài),啟動、停止、重啟一個或多個進程,對于不熟悉shell命令的用戶來說是非常方便簡單易用的工具。Supervisor已經(jīng)存在了很多年了,是一個非常成熟穩(wěn)定的進程管理工具。
Supervisord的安裝部署,進程的創(chuàng)建管理對于一般用戶來說還是有些麻煩和不易的。用戶只想要一個在程序異常終止后自動重啟程序的工具,或配置開機自啟程序,并不想明白配置文件參數(shù)是什么意思,怎么配置等,畢竟不是搞這方面的。Supervisord的web管理工具又非常的簡陋,只能控制并不能創(chuàng)建進程,還是需要手動創(chuàng)建配置文件。
旗魚云梯根據(jù)用戶的需求開發(fā)了基于supervisord管理器的web管理工具,非常方便使用,非常適合一般用戶。


image.png

下面我們創(chuàng)建一個進程來試一下
1.創(chuàng)建一個python程序,每秒打印一次當前時間


image.png

b)這里有個重點是,Supervisord只能管理前臺進程,也就是阻塞進程。就像test.py腳本,運行后會一直阻塞這并不會結(jié)束,每隔一秒輸出當前時間,如果沒有while True, 那么運行后會立即結(jié)束并不會阻塞在那里,因為已經(jīng)運行結(jié)束了Supervisord管理器就無法管理它了。

2.創(chuàng)建Supervisord管理進程


image.png

b)運行目錄就是 test.py腳本所在目錄
c)啟動命令就是在命令行中運行test.py腳本時執(zhí)行的命令,在這里要加一個 -u參數(shù),因為print輸出是有緩沖區(qū)的,無法立即輸出,直到緩沖區(qū)滿,-u參數(shù)表示無緩沖區(qū),立即輸出。
3.創(chuàng)建成功,可以看到進程id,運行狀態(tài),運行時間,日志目錄,并且能重啟,停止,刪除進程等操作。


image.png

a)點擊查看日志,進入日志目錄, error.log是程序運行錯誤日志,output.log是輸出日志,我們每間隔一秒輸出的當前時間就在這個日志里
image.png

image.png

4.下面來驗證一下,程序異常終止的時候,Supervisord管理器是否能自動重啟進程呢?


image.png
在命令行中手動結(jié)束test.py 這個進程,可以看到進程結(jié)束成功,Supervisord管理器立即自動重啟了test.py程序。

旗魚云梯每分鐘檢測Supervisord管理器主程序是否啟動,如未啟動會自動啟動Supervisord管理器,并且對Supervisord管理器主程序配置了開機自啟,Supervisord啟動的時候會自動啟動它所管理程序。因此如果需要配置開機自啟程序的話,可以添加到Supervisord管理器中,即可實現(xiàn)程序的開機自啟功能。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容