netcore supervisor守护进程

2021-01-04  乐帮网

centos netcore supervisor

使用Netcore开发完成应用程序后下一步就需要发布啦。如果要发布到CentOS当中那我们应该怎么操作呢?首先你需要知道的是我们所有的运行程序必须要有一个程序的入口,也就是C时代的Main函数。我们运行netcore的话只需要命令:dotnet Own.WebSite.dll。但是有一个前提这个命令窗口进程不能关,否则我们的程序将终止,所以我们需要把它的主进程托管到一个常驻进程中,发布服务除外。这个时候就用到了Supervisor。

(1)首先了解下Supervisor,supervisor管理进程,是通过fork/exec的方式将这些被管理的进程当作supervisor的子进程来启动,它是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具。它能监听进程的状态,可以设置自动恢复等功能。

(2)CentOS下安装Supervisor,使用以下命令行安装程序

yum install epel-release
yum install supervisor
supervisord --version

(3)配置Supervisor,使用命令vim /etc/supervisord.conf,在最下面修改指向我们netcore程序配置目录,实际上可以统一放到一个固定目录,用名称来区分它们。例如:

[include]
files = supervisord.d/*.conf

这个配置就是说我的目标守护配置放到了目录:/etc/supervisord.d/

(4)在上面配置目录添加守护目标配置,完整示例:

vi /etc/supervisord.d/dotnet_Own.WebSite.conf

[program:Own.WebSite]
command=/bin/bash -c "dotnet Own.WebSite.dll"
directory=/home/wwwroot/Own.WebSite/
stderr_logfile=/tmp/Own.WebSite.error.log
stdout_logfile=/tmp/Own.WebSite.stdout.log
environment=ASPNETCORE_ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=3


上面的配置通过单词就能看懂是什么意思 ,如何想知道更详细内容可参看官网的详细说明在这里:http://supervisord.org/configuration.html

最后说一下supervisord常用命令:

systemctl enable supervisord
systemctl start supervisord
systemctl stop supervisord
systemctl status supervisord
systemctl reload supervisord
systemctl restart supervisord

原创作品禁止转载!

公众号二维码

关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com

庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。

欧阳修

付款二维码

如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力