centos上安裝supervisor來管理dotnetcore等應用程序

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

相關文章
相關標籤/搜索