1. 程式人生 > >配置Supervisor管理程序

配置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=123
Supervisor配置

   * 注意去掉前面的“分號”

  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

  參考文件