使用守護服務(Supervisor)保持dotnet進程的運行
在享受.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進程的運行