守护进程supervisor安装

安装

安装Python包管理工具

yum install python-setuptools

安装Supervisor

easy_install supervisor

配置

生成supervisor的初始化配置文件

通过运行echo_supervisord_conf程序生成supervisor的初始化配置文件,如下所示:

mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf

修改配置文件

修改supervisord.conf。在文件尾部添加如下配置。

vi /etc/supervisor/supervisord.conf

在文档的末尾添加如下代码:

;conf.d 为配置表目录的文件夹,需要手动创建
[include]
files = conf.d/*.conf

查询替换supervisord.conf配置中的信息:

原文内容替换内容
file=/tmp/supervisor.sockfile=/var/run/supervisor.sock
logfile=/tmp/supervisord.loglogfile=/var/log/supervisord.log
pidfile=/tmp/supervisord.pidpidfile=/var/run/supervisord.pid
serverurl=unix:///tmp/supervisor.sockserverurl=unix:///var/run/supervisor.sock

创建守护进程配置文件夹

mkdir 0755 /etc/supervisor/conf.d

image

加载配置

supervisord -c /etc/supervisor/supervisord.conf

重新加载守护进程

supervisorctl reload

配置Supervisor开机启动

为supervisor创建一个服务

vi /usr/lib/systemd/system/supervisord.service

粘贴以下代码

# dservice for systemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[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

开机启动

设置

systemctl enable supervisord

验证是否开机启动配置成功

systemctl is-enabled supervisord

image

添加守护进程

添加守护进程配置文件:

vi /etc/supervisor/conf.d/Test_MonitorRabbitmqAuditResultMessageQueue.conf

以下是配置文件正文

#程序名称,终端控制时需要的标识,此处示例标识:Test_MonitorRabbitmqAuditResultMessageQueue
[program:Test_MonitorRabbitmqAuditResultMessageQueue] 
#进程名称
process_name=%(program_name)s_%(process_num)02d
#运行程序的命令
command=php /home/wwwroot/test/think monitor:rabbitmq:audit_result_message_queue
#命令执行的目录
directory=/home/wwwroot/test
#程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
autorestart=true 
#启动失败自动重试次数,默认是3
startretries=3 
#程序是否自动启动
autostart=true 
#用哪个用户启动进程,默认是root
user=root 
#进程数
numprocs=10
#进程启动优先级,默认999,值小的优先启动
priority=999 
#把stderr重定向到stdout,默认 false
redirect_stderr=true
#错误日志文件
stderr_logfile=/var/log/Test_MonitorRabbitmqAuditResultMessageQueue.err.log 
#输出日志文件
stdout_logfile=/var/log/Test_MonitorRabbitmqAuditResultMessageQueue.out.log

常用的相关管理命令

supervisorctl restart <application name> ;重启指定应用
supervisorctl stop <application name> ;停止指定应用
supervisorctl start <application name> ;启动指定应用
supervisorctl restart all ;重启所有应用
supervisorctl stop all ;停止所有应用
supervisorctl start all ;启动所有应用

web管理界面开启

修改配置

vi /etc/supervisor/supervisord.conf

在这里插入图片描述
设置访问端口,用户名,密码
示例中的:*:9001代表本机任意ip加端口即可访问

开启防火墙端口

firewall防火墙

firewall-cmd --zone=public --add-port=9001/tcp --permanent && firewall-cmd --reload

iptables防火墙

iptables -A INPUT -p tcp -m tcp --dport 9001 -j ACCEPT && service iptables save && service iptables restart

配置无法加载提示以下错误解决方案

[root@localhost etc]# supervisord -c /etc/supervisor/supervisord.conf
Error: Another program is already listening on a port that one of our HTTP servers is configured to use.  Shut this program down first before starting supervisord.
For help, use /usr/bin/supervisord -h
[root@localhost etc]#

首先查询supervisord的进程ID

ps -ef | grep supervisord

执行后可以获得supervisord的进程ID,然后kill掉supervisord的进程

kill -s SIGTERM 14002

接着重新加载配置

supervisord -c /etc/supervisor/supervisord.conf

演示操作截图如下:第一行的14002即为进程ID
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值