.Net Core 5学习笔记

3、CentOS下使用supervisor为.Net Core

2020-12-14  本文已影响0人  _千_鸟_

一、安装:

(1)在线安装(with pip):

pip install supervisor

(2)在线安装(without pip):

第一步:从Pypi站点下载supervisor安装包

第二步:解压后执行

python setup.py install

(3)离线安装:

第一步:从Pypi站点下载离线安装工具包

第二步:解压后执行

python setup.py install

二、配置Supervisor

(1)创建配置文件:

一旦supervisor安装成功,可以执行echo_supervisord_conf进行测试,将会打印默认的配置数据。

 echo_supervisord_conf > /etc/supervisord.conf

注:supervisor的配置文件推荐放/etc路径下

(2)编写配置文件

      配置文件最后一行,设置守护进程目录,如图所示:

   files的意义在于:可以为每个进程配置一个ini文件,通过维护.net core进程进行维护管理。

  示例,在/etc下创建supervisord.d文件夹,在文件夹中创建指定.net core的守护参数。

cd /etc/supervisord.d

vi zufang.ini

复制以下内容:

[program:zufang]

#运行程序的命令

command=dotnet ZuFangSystem_API.dll --urls="http://*:8010;"

#命令执行的目录

directory=/home/ZuFang

#进程环境变量

environment=ASPNETCORE_ENVIRONMENT=Production

#进程执行的用户身份

user=root

#进程停止信号,可以为TERM, HUP, INT, QUIT, KILL, USR1, or USR2等信号默认为TERM 。当用设定的信号去干掉进程,退出码会被认为是expected,非必须设置

stopsignal=INT

#如果是true的话,子进程将在supervisord启动后被自动启动,默认就是true,非必须设置

autostart=true

#这个是设置子进程挂掉后自动重启的情况,有三个选项,false,unexpected和true。如果为false的时候,无论什么情况下,都不会被重新启动,如果为unexpected,只有当进程的退出码不在下面的exitcodes里面定义的退出码的时候,才会被自动重启。当为true的时候,只要子进程挂掉,将会被无条件的重启

autorestart=true

#这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了,默认值为1 。非必须设置

startsecs=1

#错误日志文件

stderr_logfile=/var/log/zufang/zufang.err.log

#输出日志文件

stdout_logfile=/var/log/zufang/zufang.out.log

三、运行

supervisord -c /etc/supervisord.conf

四、执行supervisorctl进行守护进程的维护

supervisorctl -c /etc/supervisord.conf

将看到正在运行的进程

五、其它

(1)需要运行多个.net core,只需要创建不同的.ini文件即可,注意端口号不要冲突;

(2)supervisor可以开启网页管理,具体可参考官方文档,如何开启网页访问supervisor

(3)其它调试常用命令:

 "查找supervisor进程pid: ps -ef|grep super

 "关闭进程: kill -9 pid" (或者进入 supervisorctl  ,执行shutdown操作)

 "删除sock文件: sudo unlink /var/run/supervisor/supervisor.sock "

 "重启守护服务: supervisord -c /etc/supervisord.conf.rpmnew"

 "启动ctl: supervisorctl -c /etc/supervisord.conf.rpmnew"

 "重新加载: 进入 supervisorctl ,执行reload命令"

(4)故障解决:

    可能任然会遇到 supervisorctl中显示服务running,但实际无法访问站点的情况。

   方法一:执行roload;

   方法二:执行shutdown,重新启动 supervisord -c  ~.conf

   方法三:重启服务器(shutdown -r now),重启后重新启动supervisor

参考官网supervisor链接:supervisor参考链接

上一篇下一篇

猜你喜欢

热点阅读