1. 程式人生 > >使用守護服務(Supervisor)保持dotnet進程的運行

使用守護服務(Supervisor)保持dotnet進程的運行

etc con log netcore sig lock all tde 創建

在享受.Net Core給我們帶來的跨平臺之後,我們都會發現一個問題,就是dotnet的進程是會話級別的。

當我們與服務器的會話結束之後或者使用Ctrl+C結束dotnet都會結束掉dotnet進程。

在這裏記錄一下如何使用Supervisor,主要是怎麽配置Supervisor

安裝Supervisor的運行環境,Python

yum install python-setuptools

技術分享圖片

安裝Supervisor

easy_install supervisor

技術分享圖片

提示

Finished processing dependencies for supervisor

安裝完成!

下一步需要把Supervisor的配置文件導出到/etc/supervisor/supervisord.conf

echo_supervisord_conf

命令可以打印出Supervisor默認的配置文件

技術分享圖片

mkdir /etc/supervisor

echo_supervisord_conf > /etc/supervisor/supervisord.conf

創建目錄並創建配置文件

修改supervisord.conf底部的配置信息

vi /etc/supervisor/supervisord.conf

技術分享圖片

;[include]
;files = relative/directory/*.ini

修改為

[include]
files = conf.d/*.conf

把前面的;去掉 修改要加載的進程配置信息的路徑

技術分享圖片

創建conf.d目錄

mkdir /etc/supervisor/conf.d

創建一個要守護的進程配置文件,在這裏叫 TestCore.conf

vi /etc/supervisor/conf.d/TestCore.conf

把配置代碼復制到TestCore.conf文件中

[program:TestCore]
command=dotnet TestCore.dll ; 運行程序的命令
directory=/data/Test/ ; 命令執行的目錄
autorestart=true ; 程序意外退出是否自動重啟
stderr_logfile=/var/log/TestCore.err.log ; 錯誤日誌文件
stdout_logfile=/var/log/TestCore.out.log ; 輸出日誌文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 進程環境變量
user=root ; 進程執行的用戶身份
stopsignal=INT

技術分享圖片

運行Supvisor

supervisord -c /etc/supervisor/supervisord.conf

技術分享圖片

查看是不是生效

supervisorctl status

技術分享圖片

當看到我們剛剛創建的TestCore守護進程 RUNNING說明他在運行中,可以用瀏覽器去訪問一下試試

技術分享圖片

現在已經通過 Supervisor啟動了dotnet TestCore.dll

Supervisor的CTL命令

supervisorctl 是 supervisord的命令行客戶端工具

查看所有進程的狀態:

supervisorctl status

技術分享圖片

停止TestCore(all為所有):

supervisorctl stop TestCore

supervisorctl stop all

技術分享圖片

啟動TestCore(all為所有):

supervisorctl start TestCore

supervisorctl start all

技術分享圖片

重啟TestCore(all為所有):

supervisorctl restart TestCore

supervisorctl restart all

技術分享圖片

重新加載配置文件(supervisord.conf):

supervisorctl update

技術分享圖片

重啟配置中的進程:

supervisorctl reload

技術分享圖片

學習筆記,也希望能幫到需要的朋友!

使用守護服務(Supervisor)保持dotnet進程的運行