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 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服务 ? 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |