環境:
Centos 7
已安裝.Net core 2.0.0 .Net core 1.1.2
1、Supervisor安裝
- yum 安裝
yum install supervisor
(阿里雲驗證通過)
- easy_install 安裝
如果yum安裝無法找到資源,可以通過easy_install
wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
安裝supervisor
easy_install supervisor
2、配置supervisor
- 在etc下創建目錄,並賦權限
mkdir -m 700 -p /etc/supervisor
- 在目錄“ /etc/supervisor”下創建配置文件
echo_supervisord_conf > /etc/supervisor/supervisord.conf
- 修改配置文件
vim /etc/supervisor/supervisord.conf
在文件末尾添加,注意首尾需無空格,需頂格
[include]
files=/etc/supervisor/conf.d/*.conf
- 在目錄“/etc/supervisor”下創建dotnet core 進程配置文件存放目錄“conf.d”
mkdir -m 700 /etc/supervisor/conf.d
3、創建進程配置文件
vim /etc/supervisor/conf.d/MyDotNetName.conf
"MyDotNetName"可以為dotnet core 入口dll文件名字 ,插入內容,注意首尾需無空格,需頂格:
[program:MyDotNetName] command=/bin/bash -c "dotnet MyDotNetName.dll" directory=/usr/PublishOutput/
stderr_logfile=/var/log/MyDotNetName.error.log stdout_logfile=/var/log/MyDotNetName.stdout.log
environment=ASPNETCORE_ENVIRONMENT=Production
user=root
stopsignal=INT autostart=true
autorestart=true startsecs=3
[program:MyDotNetName] ;顯示名稱
command=/bin/bash -c "dotnet MyDotNetName.dll" ;運行命令,啟動dotnet進程
directory=/usr/PublishOutput/ ;MyDotNetName目錄
stderr_logfile=/var/log/MyDotNetName.error.log ;錯誤日志文件
stdout_logfile=/var/log/MyDotNetName.stdout.log ;日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ;進程環境變量
user=root ;進程執行用戶
autostart=true ;自動啟動 autorestart=true ;是否自動重啟
startsecs=3 ;自動重啟間隔時間
4、創建supervisor 自啟動服務
vim /etc/systemd/system/supervisor.service
編輯內容:
[Unit] Description=supervisor [Service] Type=forking ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf ExecStop=/usr/bin/supervisorctl shutdown ExecReload=/usr/bin/supervisorctl reload KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target
使配置生效
systemctl daemon-reload
設置服務開機啟動,即設置enable
systemctl enable supervisor.service
啟動服務
systemctl start supervisor.service
5、驗證dotnet進程是否啟動
使用命令“ps -ef | grep dotnet”查看dotnet 是否運行
[root@machine ~]# ps -ef | grep dotnet root 2281 2280 0 15:27 ? 00:00:00 dotnet MyDotNetName.dll root 2302 2217 0 15:30 pts/0 00:00:00 grep --color=auto dotnet
6、supervisor遠程管理
使用命令“vim /etc/supervisor/supervisord.conf”修改配置文件,如下設置
;[inet_http_server] ; inet (TCP) server disabled by default ;port=127.0.0.1:9001 ; (ip_address:port specifier, *:port for all iface) ;username=user ; (default is no username (open server)) ;password=123 ; (default is no password (open server))
;以下內容開啟http服務 [inet_http_server] port=192.168.1.71:9001 ;ip 加端口 username=admin ;登陸賬號,可以不設 password=123456 ;登陸賬戶,可以不設
重啟服務,就可以訪問了
注意防火牆是否對端口9001例外
可能遇到的問題:
supervisor 啟動dotnet.core 報“ too many start retries too quickly”