天天看点

在乌班图系统(ubantu)中使用Supervisor守护进程工具安装AspNetCore程序

第一步:安装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管理界面,如下图:

在乌班图系统(ubantu)中使用Supervisor守护进程工具安装AspNetCore程序

第二部:在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管理控制台查看状态:

在乌班图系统(ubantu)中使用Supervisor守护进程工具安装AspNetCore程序

主要碰到两种异常情况:

1:当报错内容是dotnet command not found时,请检查环境变量是否正确,如果环境变量也正确的话可以使用命令的绝对路径,我的dotnet命令的绝对路径是:/home/root/dotnet/dotnet;

2:当报错内容是BACKOFF Exited too quickly时,请检查命令是否可以正常启动程序,并且检查aspnetcore的程序目录是否正确,或者检查日志是否正常输出,没日志输出说明程序没权限,也就是启动用户没权限,一般root用户是有权限的;