linux centos Supervisor守护.netcore进程安装配置

 场景:当部署完.netcore程序后 使用dotnet xx.dll 后可以运行,但关闭shell或隔断时间会自动断开,此时部署的.netcore程序就不能访问了,此时需要用到Supervisor了

 Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。

1、安装Python

yum install python-setuptools
easy_install supervisor

2、新建supervisor文件夹

mkdir /etc/supervisor

3、在该目录下,生成supervisord.conf文件

echo_supervisord_conf > /etc/supervisor/supervisord.conf

4、新建conf.d文件夹

mkdir /etc/supervisor/conf.d

此时的目录结构:

5、编辑supervisord.conf文件,在文件中末尾添加

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

6、在conf.d中添加文件test.conf

文件内容:

[program:testservice] ;程序名称,终端控制时需要的标识
command=dotnet test2.dll ; 运行程序的命令
directory=/home/website/test/ ; 命令执行的目录
autorestart=true ; 程序意外退出是否自动重启
stderr_logfile=/var/log/testservice.err.log ; 错误日志文件
stdout_logfile=/var/log/testservice.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=INT
startsecs=1 ; 自动重启间隔

7、指定supervisor配置文件

supervisord -c /etc/supervisor/supervisord.conf

8、Supervisor开机自启动

在目录/usr/lib/systemd/system 中新建文件supervisord.service

文件内容:

#supervisord.service

[Unit] 
Description=Supervisor daemon

[Service] 
Type=forking 
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown 
ExecReload=/usr/bin/supervisorctl reload 
KillMode=process 
Restart=on-failure 
RestartSec=42s

[Install] 
WantedBy=multi-user.target

9、使配置生效

systemctl daemon-reload

  重启supervisor服务
   $ supervisorctl reread
   如果重启的时候报错: 
   error: <class 'socket.error'>, [Errno 111] Connection refused: file: /usr/lib64/python2.6/socket.py line: 567
   则说明服务尚未启动,先启动即可:
   sudo supervisord -c /etc/supervisor/supervisord.conf
   sudo supervisorctl -c /etc/supervisor/supervisord.conf
   如果修改了 /etc/supervisord.conf ,需要执行 supervisorctl reload 来重新加载配置文件,否则不会生效。

10、设置服务开机启动

systemctl enable supervisor.service

 11、验证一下是否为开机启动

systemctl is-enabled supervisord

 12、启动服务

systemctl start supervisor.service

至此完成

参考文章:

https://www.cnblogs.com/hobinly/p/7382038.html

https://my.oschina.net/lichaoqiang/blog/1861791

https://www.cnblogs.com/sundahua/p/9149692.html

https://blog.csdn.net/chivalrousli/article/details/60324140

猜你喜欢

转载自www.cnblogs.com/xiao-sheng/p/11627748.html