supervisor守护进程配置

32 篇文章 0 订阅
16 篇文章 0 订阅

实际应用项目:http://github.crmeb.net/u/long

软硬件环境

  • centos7.6.1810 64bit

     

    cat /etc/redhat-release #查看系统版本

  • supervisor 3.4.0

  • python 2.7.5

supervisor简介

supervisor是一个用python语言编写的进程管理工具,它可以很方便的监听、启动、停止、重启一个或多个进程。当一个进程意外被杀死,supervisor监听到进程死后,可以很方便的让进程自动恢复,不再需要程序员或系统管理员自己编写代码来控制。

supervisord安装

 

yum install -y epel-release yum install -y supervisor

启动&开启自启

 

systemctl start supervisord systemctl enable supervisord

其他命令

 

systemctl stop supervisord systemctl start supervisord systemctl status supervisord systemctl reload supervisord systemctl restart supervisord

supervisor的web端

supervisor提供了基于web的控制,管理员可以通过在页面上点点按钮即可完成对进程的启动、重启等操作,甚是方便。

进入配置文件,开启对web端的支持

 

vim /etc/supervisord.conf

如果提供给外部访问,需要将port改为本机ip地址

 

#取消10-13行注释,前面数字是行号 [inet_http_server] ; inet (TCP) server disabled by default port=192.168.26.121:9001 ; (ip_address:port specifier, *:port for all iface) username=user ; (default is no username (open server)) password=123 ; (default is no password (open server))

配置完成后重启服务

 

systemctl restart supervisord

supervisord应用配置

进入supervisord配置文件

 

cat /etc/supervisord.conf

通过配置文件最后一行看到

 

[include] files = supervisord.d/*.ini

也就是说,我们所有的应用配置文件都保存在这个目录下,以.ini格式命名保存的,可以自行修改地址,但不要修改后缀

那我们来创建一个受监控的应用吧

创建测试python配置

创建一个名称叫做python的应用程序配置

 

vim /etc/supervisord.d/python.ini

配置文件内容,其中command就是我们应用程序启动需要执行的命令

 

[program:python] #这里的python就是我们显示在web前端以及终端的监控名称 command=python /tmp/supervisordtest/test.py #我们要监控的文件地址 autostart=true autorestart=true startsecs=1 startretries=3 redirect_stderr=true stdout_logfile=/tmp/supervisordtest/access_python.log #日志地址,可自行配置目录 stderr_logfile=/tmp/supervisordtest/error_python.log #日志地址,可自行配置目录

创建test.py

 

mkdir /tmp/supervisordtest vim /tmp/supervisordtest/test.py

程序内容:开启一个死循环,不停的打印内容

 

while True: print(100)

重启supervisord使配置文件生效

 

systemctl restart supervisord

查看应用是否正常启动

1、命令查看

 

systemctl status supervisord

2、可视化web查看

web端可以重启,停止,清理日志,查看日志等多个操作

image-20200607153351958

supervisor相关的几个命令

安装完毕,会生成3个系统命令supervisorctlsupervisordecho_supervisord_conf

  1. supervisord,运行supervisor时会启动一个进程supervisord,它负责启动所管理的进程,并将所管理的进程作为自己的子进程来启动,而且可以在所管理的进程出现崩溃时自动重启

  2. supervisorctl是命令行管理工具,可以用来执行 start stop restart 等命令,来对这些子进程进行管理, 如

     

    sudo supervisorctl start demoweb

    其中demoweb是进程的名称, 详细的命令及说明见下面的这张表

    命令说明
    supervisorctl start program_name启动某个进程
    supervisorctl stop program_name停止某个进程
    supervisorctl restart program_name重启某个进程
    supervisorctl status program_name查看某个进程的状态
    supervisorctl stop all停止全部进程 | \
    supervisorctl reload载入最新的配置文件,重启所有进程
    supervisorctl update根据最新的配置,重启配置更改过的进程,未更新的进程不受影响
  3.  

    echo_supervisord_conf

    用来生成默认的配置文件(默认配置文件,内容非常齐全且都有注释,适合用时查阅,用法是这样的

     

    echo_supervisord_conf > test.conf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值