supervisor 介紹:html
這是一款用python編寫的進程管理工具,能夠守護他管理的全部進程,防止異常退出,以及提供一個可視化的web界面來手動管理,打開關閉重啓各類應用,界面以下:python
關於在centos上安裝supervisor:linux
一、經過yum安裝:git
1
|
yum
install
supervisor
|
二、配置supervisor:github
咱們去用vim編輯/etc/supervisord.conf這個文件,能夠看到有不少選項web
第一個節點是UnixSocket,是unix進程間通訊的,默認開啓,後面本機的supervisorctl能夠經過他來鏈接到supervisord服務器vim
第二個節點是對外的Http服務,是對外開放的,主要給遠程的supervisorctl或者客戶瀏覽器訪問,固然本機supervisorctl也可使用http的方式來鏈接windows
第三個節點就是核心,supervisord服務,這個服務就是真正管理進程的worker,裏面每一個選項註釋都有解釋centos
第四個節點就是本機的客戶端,supervisorctl,圖中使用的是unixsocket來和supervisord通訊的,咱們可使用一些命令來控制supervisord,好比supervisorctl reload//從新加載supervisord,也就是重啓一把了,supervisorctl update 也就是更新配置信息,supervisorctl start {進程名稱} 啓動,supervisorctl stop {進程名稱} 關閉,等等瀏覽器
首先,咱們把supervisor服務啓動起來:
1
|
supervisord -c
/etc/supervisord
.conf
|
這樣就使用這個配置文件啓動了supervisor服務,
這個時候咱們能夠經過9001端口訪問下這個頁面,就能看到一個沒有任務列表的第一張圖的頁面
第一步完成,接下來咱們跑個程序在裏面
首先咱們安裝一把dotnetcore,
https://dotnet.github.io/ 這裏有介紹,
而後咱們建立一個core'程序,放到/service/helloword目錄下
在dotnet編譯一把,生成了一個一個dll文件
進到目錄裏 dotnet WebApplication1.dll
運行成功。而後咱們打開supervisord.conf 繼續配置,如圖所示
主要有兩個配置,一個directory和command,directory就是首先cd 這個directory,command就是執行這個命令,還有個environment,.net裏面通常生產環境,開發環境,測試環境啥的就能夠在這裏配置
而後保存文件
reload一下supervisord
在打開瀏覽器,是否是發現多了一個running狀態的helloworld程序?
在這裏能夠重啓,關閉,tail-f查看實時日誌信息
如今咱們測試一下若是程序異常關閉以後會怎樣,咱們打開日誌,而後到控制檯下kill掉這個進程,會發現日誌顯示
是supervisord自動將其打開了,因此supervisord也是可以好好守護這個進程的,
於是咱們能夠考慮將.netcore程序部署到linux服務器上,而且使用supervisord來管理一把,從而也就至關於在windows上的服務了,並且還能實時監控運行狀態,日誌之類的,還能自由開關也是方便。
這個工具天然不只僅是管理dotnetcore程序,其餘不少程序都是能夠管理的,可是有個須要注意的是被管理的程序必須已非deamon的方式運行,不然他無法準確捕捉到這個進程Id,並且捕捉到的進程id會在啓動deamon的時候關閉掉
從而致使一、啓動的時候認爲啓動成功了,可是完事了進程又退出了,他就認爲異常退出,而後不斷從新啓動程序,二、天然也就無法控制啦
本文出自https://www.cnblogs.com/dingsblog/p/7040680.html
參考
Supervisor 守護 dotnetcore 程序
https://www.aliyun.com/jiaocheng/444620.html
CentOS7下Supervisor安裝與配置
https://www.jishuchi.com/archives/491.html
CentOS7使用supervisor總結
https://www.jianshu.com/p/65b5d41c2957