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
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步