centos7 守護程序
ASP.NET Core應用程式釋出linux在shell中執行是正常的。可一但shell關閉網站也就關閉了,所以要配置守護程序, 用的是Supervisor,本文主要記錄配置的過程和過程遇到的問題
安裝Supervisor
1 yum install python-setuptools
2 easy_install supervisor
配置Supervisor
3 mkdir /etc/supervisor
4 echo_supervisord_conf > /etc/supervisor/supervisord.conf
5 上面語句執行完後就能在/etc/supervisor 資料夾下找到檔案 supervisord.conf 如圖
下面我們要將檔案的結尾部分替換掉以便後面能讀取到我們的配置檔案
在檔案的結尾找到以下
1
;[include];files = relative/directory/*.ini
將程式碼替換為如下,注意前後不能帶 ;和空格符號
1
[include]files = conf.d/*.conf
6 進入目錄 /etc/supervisor/ 新建 conf.d資料夾,conf.d資料夾下新建 myproject.conf檔案
具體內容如下,注意命令執行的目錄要寫你專案檔案所在的目錄,兩個日誌檔案的名稱最好也統一改一下
[program:myproject]
command=dotnet myproject.dll ; 執行程式的命令
directory=/root/mypro/ ; 命令執行的目錄
autorestart=true ; 程式意外退出是否自動重啟
stderr_logfile=/var/log/myproject.err.log ; 錯誤日誌檔案
stdout_logfile=/var/log/myproject.out.log ; 輸出日誌檔案
environment=ASPNETCORE_ENVIRONMENT=Production ; 程序環境變數
user=root ; 程序執行的使用者身份
stopsignal=INT
執行supervisord並檢視
7 supervisord -c /etc/supervisor/supervisord.conf
8 ps -ef | grep myproject # 這行命令是檢視有關myproject的所有程序 ,【注意】myproject是上面 program:myproject 的命名 ,如果你看到如下圖 ,說明執行成功,如果沒有成功可以看上面配置的那個錯誤日誌檔案
9 supervisorctl reload #最後重新載入配置
下面整理一些關於 Supervisor 的命令 ,參考連結https://segmentfault.com
命令 說明
supervisord 初始啟動Supervisord,啟動、管理配置中設定的程序
supervisorctl stop myproject 停止某一個程序(programxxx),programxxx為[program:chatdemon]裡配置的值,這個示例就是chatdemon
supervisorctl start myproject 啟動某個程序
supervisorctl restart myproject 重啟某個程序
supervisorctl stop groupworker 重啟所有屬於名為groupworker這個分組的程序(start,restart同理)
supervisorctl stop all 停止全部程序,注:start、restart、stop都不會載入最新的配置檔案
supervisorctl reload 載入最新的配置檔案,停止原有程序並按新的配置啟動、管理所有程序
supervisorctl update 根據最新的配置檔案,啟動新配置或有改動的程序,配置沒有改動的程序不會受影響而重啟。注意:顯示用stop停止掉的程序,用reload或者update都不會自動重啟
溫馨提示:如果要結束某個守護程序,我們可以 ps -ef | grep supervisord 查出所有守護程序相關的程序
然後再用 kill -9 pid 結束程序
---------------------
作者:huaqiangu1123
來源:CSDN
原文:https://blog.csdn.net/huaqiangu1123/article/details/78751045
版權宣告:本文為博主原創文章,轉載請附上博文連結!