前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3分钟学会如何上手supervisor看门狗

3分钟学会如何上手supervisor看门狗

作者头像
happlyfox
发布2021-03-04 10:02:09
4720
发布2021-03-04 10:02:09
举报
文章被收录于专栏:技术开源分享

软硬件环境

  • centos7.6.1810 64bit
代码语言:javascript
复制
  cat /etc/redhat-release #查看系统版本
  • supervisor 3.4.0
  • python 2.7.5

supervisor 简介

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

supervisord 安装

代码语言:javascript
复制
yum install -y epel-release
yum install -y supervisor
启动&开启自启
代码语言:javascript
复制
systemctl start supervisord
systemctl enable supervisord
其他命令
代码语言:javascript
复制
systemctl stop supervisord
systemctl start supervisord
systemctl status supervisord
systemctl reload supervisord
systemctl restart supervisord

supervisor 的 web 端

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

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

代码语言:javascript
复制
vim /etc/supervisord.conf

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

代码语言:javascript
复制
#取消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))

配置完成后重启服务

代码语言:javascript
复制
systemctl restart supervisord

supervisord 应用配置

进入 supervisord 配置文件

代码语言:javascript
复制
cat /etc/supervisord.conf

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

代码语言:javascript
复制
[include]
files = supervisord.d/*.ini

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

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

创建测试 python 配置

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

代码语言:javascript
复制
vim /etc/supervisord.d/python.ini

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

代码语言:javascript
复制
[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
代码语言:javascript
复制
mkdir /tmp/supervisordtest
vim /tmp/supervisordtest/test.py

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

代码语言:javascript
复制
while True:
   print(100)

重启 supervisord 使配置文件生效

代码语言:javascript
复制
systemctl restart supervisord
查看应用是否正常启动

1、命令查看

代码语言:javascript
复制
systemctl status supervisord

2、可视化 web 查看

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

image-20200607153351958

supervisor 相关的几个命令

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

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

代码语言:javascript
复制
echo_supervisord_conf > test.conf
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 软硬件环境
  • supervisor 简介
  • supervisord 安装
    • 启动&开启自启
      • 其他命令
      • supervisor 的 web 端
      • supervisord 应用配置
        • 创建测试 python 配置
          • 创建 test.py
            • 查看应用是否正常启动
            • supervisor 相关的几个命令
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档