第一步:安装Supervisor工具,并配置一下web管理界面;
1、修改并生成默认配置文件:
-
sudo apt-get install supervisor //安装supervisor
-
service supervisor start //启动supervisor,也可以使用这个命令启动supervisord,启动时可以指定配置文件启动
-
echo_supervisord_conf > /etc/supervisor/supervisord.conf //生成标准的supervisor配置文件,需要root权限,否则不能创建conf文件
2、修改配置文件配置web管理界面功能:
-
sudo vim /etc/supervisor/supervisord.conf
-
;打开配置文件后找到以下内容,并且把前面的;号去掉
-
[inet_http_server] ; inet (TCP) server disabled by default
-
port=0.0.0.0: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))
-
;这两行大概在文件的最末尾
-
[include]
-
files = /etc/supervisor/conf.d/*.conf
3、重新启动supervisor或者更新supervisor的配置
-
sudo supervisorctl reload //重启supervisor
-
service supervisor restart //也是重启命令
sudo supervisorctl update //更新配置文件
4、可以使用地址:http://localhost:9001访问进入到supervisor的web管理界面,如下图:
第二部:在Supervisor的安装目录下,一般为默认安装目录:/etc/supervisor有一个conf.d的目录,进入conf.d的目录bi并且创建一个配置文件:sudo vim hellowebapp.conf(文件名可以自定义),填入以下内容:
[program:hellowebapp] ;此处为服务名称可以自定义
command=/home/root/dotnet/dotnet WebApplication1.dll -c appsettings.json ;此处为执行启动aspnetcore程序的命令
directory=/home/root/dotnet/website/test.web ;此处为aspnetcore程序的目录
environment=ASPNETCORE_ENVIRONMENT=Production ;此处通用
autorestart=true ;此处通用
autostart=true ;此处通用
stderr_logfile=/home/root/dotnet/website/WebApplication1.err.log ;此处为aspnet程序的supervisor写的日志,很多时候启动不了可以查看此日志找原因
stdout_logfile=/home/root/dotnet/website/WebApplication1.out.log ;此处为aspnet程序的supervisor写的日志
user=root ;此处为系统登入用户名
stopsignal=INT ;此处通用
startsecs=1 ;此处通用
startretries=3 ;此处通用
一般来说配置好了这些就能正常启动apsnetcore程序了,可以到supervisor的web管理控制台查看状态:
主要碰到两种异常情况:
1:当报错内容是dotnet command not found时,请检查环境变量是否正确,如果环境变量也正确的话可以使用命令的绝对路径,我的dotnet命令的绝对路径是:/home/root/dotnet/dotnet;
2:当报错内容是BACKOFF Exited too quickly时,请检查命令是否可以正常启动程序,并且检查aspnetcore的程序目录是否正确,或者检查日志是否正常输出,没日志输出说明程序没权限,也就是启动用户没权限,一般root用户是有权限的;