配置Supervisor管理程序
在Linux中使用Supervisor來管理.Net Core專案程序。我嘗試配置了CentOS和Ubuntu兩個系統,還是有些差異的。
CentOS.7-x64
一、安裝
1、yum install supervisor
如果提示yum源沒有supervisor,則先安裝epel源:
1)yum install wget #沒有wget命令則先安裝wget
2)wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
3)rpm -ivh epel-release-latest-7.noarch.rpm
2、在etc目錄下會生成 supervisord.conf(supervisor配置檔案)和 supervisord.d(程序配置資料夾)
二、配置
1、配置待管理的程序
1)進入程序配置資料夾 cd /etc/supervisord.d/
2)在該目錄建立程序配置檔案 touch WebAPI.conf
3)編輯 vim WebAPI.conf(沒有 vim 命令就試試 vi 命令),新增程序配置資訊。要啟動幾個程序,就對應新增幾段資訊
[program:WebAPI] command=dotnet WebAPI.dll #要執行的命令,我這裡執行.Net Core程式 directory程序配置=/home/lys/WebAPI #命令執行的目錄 environment=ASPNETCORE_ENVIRONMENT=dev #環境變數 user=root #程序執行的使用者身份 stopsignal=INT autostart=true #是否自動啟動 autorestart=true #是否自動重啟 startsecs=1 #自動重啟間隔 stderr_logfile=/var/log/WebAPI.err.log #標準錯誤日誌 stdout_logfile=/var/log/WebAPI.out.log #標準輸出日誌 [program:WebAPI.AuthServer] ......
2、配置Supervisor
1)開啟配置檔案 vim /etc/supervisord.conf
2)找到 [inet_http_server] 節點
port=192.168.1.1:7002 # supervisor視覺化管理url,可以配置為 *:port username=user password=123Supervisor配置
* 注意去掉前面的“分號”
3)找到 [include] 節點
files = /etc/supervisord.d/*.conf # 這個就是程序配置檔案路徑Supervisor配置
三、執行
1、相關命令
- 停止Supervisor服務 service supervisord stop
- 啟動Supervisor服務 service supervisord start
- 重啟Supervisor服務 service supervisord restart
2、管理程序
啟動後,通過 supervisorctl 命令檢視程序狀態,然後通過 stop/start/restart 程序名 管理程序,通過 status 檢視所有程序執行狀況;或者開啟 http://192.168.1.1:7002(對應上面的配置) 管理程序,如圖:
如果啟動Supervisor報錯:什麼true呀一些value值無效(具體資訊忘了,大意是讀取配置檔案報錯),這是因為在讀取配置的value值時把註釋也給識別進去了(不知道為啥),所以去 WebAPI.conf 把註釋去掉即可。
另外,啟動專案程序時報錯可以在 /var/log/WebAPI.err.log(對應上面的配置) 中檢視詳細資訊。
Ubuntu.16.04-x64
一、安裝
sudo apt-get install supervisor
這裡和centos不一樣的地方是,etc裡只有 supervisor 資料夾,裡面有 supervisord.conf(supervisor配置檔案)和 conf.d(程序配置資料夾)
二、配置
1、配置待管理的程序
1)進入程序配置資料夾 cd /ect/supervisor/conf.d/
2)建立程序配置檔案 touch WebAPI.conf
3)編輯 vim WebAPI.conf,同CentOS
* 如果提示無權訪問,則 sudo chmod 777 WebAPI.conf 一下
2、配置Supervisor
1)開啟配置檔案 vim /etc/supervisor/supervisord.conf
2)手動新增 [inet_http_server] 節點,資訊同CentOS配置
三、執行
- sudo service supervisor stop # 注意這裡的程序名和CentOS也是不一樣的
- sudo service supervisor start
- sudo service supervisor restart