asp.net core2 Centos上配置守护服务(Supervisor)

上一篇我们存在三个文件

问题1:ASP.NET Core应用程序运行在shell之中,如果关闭shell则会发现ASP.NET Core应用被关闭,从而导致应用无法访问,这种情况当然是我们不想遇到的,而且生产环境对这种情况是零容忍的。

问题2:如果ASP.NET Core进程意外终止那么需要人为连进shell进行再次启动,往往这种操作都不够及时。

问题3:如果服务器宕机或需要重启我们则还是需要连入shell进行启动

为了解决这个问题,我们需要有一个程序来监听ASP.NET Core 应用程序的状况。在应用程序停止运行的时候立即重新启动。这边我们用到了Supervisor这个工具,Supervisor使用Python开发的。

安装Supervisor

yum install python-setuptools

easy_install supervisor

配置Supervisor

mkdir /etc/supervisor

echo_supervisord_conf > /etc/supervisor/supervisord.conf

将文件尾部的配置

#进入目录
cd /etc/supervisor/

#打开文件 vi supervisord.conf
[program:OneHopeProject]
command=dotnet TestAspNetCoreWeb.dll
directory=/root/www/Demo1
autorestart=true
stderr_logfile=/var/log/TestAspNetCoreWeb.err.log
stdout_logfile=/var/log/TestAspNetCoreWeb.out.log
environment=ASPNETCORE_ENVIRONMENT=Production
user=root
stopsignal=INT

在文件的末尾加入以上代码然后用:wq保存,可以另外存放一个配置文件,那样配置方式又不一样了。注意文件的路径,我就是被这个路径坑了好久,可以到对于的文件夹下看错误的日志。

运行supervisord,查看是否生效

supervisord -c /etc/supervisor/supervisord.conf

ps -ef | grep WebApplication1

如果没生效,则用

#更新新的配置到supervisord
supervisorctl reload

 #重新启动配置中的所有程序

  supervisorctl update


 至此关于ASP.NET Core应用程序的守护即配置完成。

 

常用命令

# 查看所有action
supervisorctl help

# 控制所有进程
supervisorctl start all
supervisorctl stop all
supervisorctl restart all

# 控制目标进程
supervisorctl stop shadowsocks
supervisorctl start shadowsocks
supervisorctl restart shadowsocks

 

posted @ 2018-05-22 00:37  Todd.He  阅读(357)  评论(0编辑  收藏  举报