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


supervisor 介紹:

  這是一款用python編寫的進程管理工具,可以守護他管理的所有進程,防止異常退出,以及提供一個可視化的web界面來手動管理,打開關閉重啟各種應用,界面如下:

關於在centos上安裝supervisor:

1、通過yum安裝:

yum install supervisor

2、配置supervisor:

我們去用vim編輯/etc/supervisord.conf這個文件,可以看到有很多選項

 

第一個節點是UnixSocket,是unix進程間通信的,默認開啟,后面本機的supervisorctl可以通過他來連接到supervisord服務器

第二個節點是對外的Http服務,是對外開放的,主要給遠程的supervisorctl或者客戶瀏覽器訪問,當然本機supervisorctl也可以使用http的方式來連接

第三個節點就是核心,supervisord服務,這個服務就是真正管理進程的worker,里面每個選項注釋都有解釋

第四個節點就是本機的客戶端,supervisorctl,圖中使用的是unixsocket來和supervisord通信的,我們可以使用一些命令來控制supervisord,比如supervisorctl reload//重新加載supervisord,也就是重啟一把了,supervisorctl update 也就是更新配置信息,supervisorctl start {進程名稱} 啟動,supervisorctl stop {進程名稱} 關閉,等等

首先,我們把supervisor服務啟動起來:

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的時候關閉掉

從而導致1、啟動的時候認為啟動成功了,但是完事了進程又退出了,他就認為異常退出,然后不斷重新啟動程序,2、自然也就沒法控制啦

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM