Java教程

supervisor守护进程

本文主要是介绍supervisor守护进程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

转载自 https://www.cnblogs.com/qmhuang/p/8196132.html

配置supervisor实现进程守护

1.安装supervisor

 yum install Supervisor 

2.启动服务

supervisord -c /etc/supervisord.conf

 进入 cd /etc 目录 找到supervisord.conf 配置文件 和 supervisord.d 文件夹,使用vim编辑supervisord.conf文件,拉到最底部我们可以看到

 files = supervisord.d/*.ini 这句代码说明它会加载supervisord.d文件夹中的所有.ini配置文件

3.编辑配置文件

随后我们在supervosprd.d中创建一个delploy.ini文件并编辑如下
[program:DeployLinux]   #DeployLinux  为程序的名称
command=dotnet DeployLinux.dll #需要执行的命令
directory=/home/publish #命令执行的目录
environment=ASPNETCORE__ENVIRONMENT=Production #环境变量
user=root #用户
stopsignal=INT 
autostart=true #是否自启动
autorestart=true #是否自动重启
startsecs=3 #自动重启时间间隔(s)
stderr_logfile=/var/log/ossoffical.err.log #错误日志文件
stdout_logfile=/var/log/ossoffical.out.log #输出日志文件
# 下面是我自己的项目示例
[program:odin-agent]
stopasgroup=false  # 默认为false,如果为true,当supervisorctl关闭项目时,会项目main启动的mysql一起关闭  
user=root
directory=/u01/agent/odin-agent  # 工作路径
command=nohup /usr/bin/python3 main.py >/dev/null 2>&1 &  # 执行命令
redirect_stderr=true  # 默认为false,为true的话,stderr的log会并入stdout的log中
autorestart=true  # 自动重启
stdout_logfile=/u01/agent/logs/odin-agent-out.log  # 输出错误日志,注:这个logs日志文件必须存在,不然supervisord启动会失败
stderr_logfile=/u01/agent/logs/odin-agent-out.err

4.重载配置文件

执行命令使用心得配置文件运行supervisor服务

supervisorctl reload  //重新加载配置文件

注意: 这里可以通过下方命令查看supervisor的运行状态

supervisorctl status

如报错,说明3编辑的配置有问题(如错误或输出日志文件不存在),这时supervisord是关闭状态,需要重新启动服务

supervisord -c /etc/supervisord.conf

 

5.访问网站

在未执行dotnet xxx.dll启动程序的情况下 在外部访问网站路径成功

 成功后supervisor 日志如下,在日志中我们看到在启动过程中,服务加载了我们的配置文件 deploy.ini

6.意外情况

这个问题本不该遇到的,但是由于我是在一无所知的情况下操作的,所以因为没有启动服务而一度焦头烂额,碎记下来警醒自己

 说明你没有启动服务,执行

supervisord -c /etc/supervisord.conf 启动即可

 

访问Supervisor的图形化界面

1.修改配置

将supervisord.conf 中的一段配置更改如下

2.重载supervisor配置

然后执行

supervisorctl reload  重新加载配置

3.开启端口

在访问其web管理界面之前,先需要开启你为他配置的端口,这里我们分配给他的是9001端口,下面是端口管理的一些命令

firewall-cmd --query-port=9001/tcp          //监测端口是否开启
firewall-cmd --add-port=9001/tcp            //开启80端口
firewall-cmd --remove-port=9001/tcp       //关闭80端口
sudo firewall-cmd --reload                  //重新加载配置

4.访问图形界面

端口开启成功后访问supervisor的界面程序进行进程管理

 

这篇关于supervisor守护进程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!