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

软硬件环境

  • 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
34 声望
2 粉丝
0 条评论
推荐阅读
我和思否的写作邂逅 | 思否9周年
大学期间我就开始参与项目组,进行一些简单的政府项目开发工作,那个时候是自学的编程,学习资料也不是很丰富,不像现在B站学习资料百花齐放。自学的内容主要包括数据库、前端、C#、运维等等,诚如有些人在小公司...

happlyfox3阅读 1.4k

工具篇:iTerm与Zsh
iTerm2支持许多的主题配色,可以自己定义,也可以参考网上现成的主题配色。我个人比较喜欢draculatheme配色。支持item,vim,phpstorm , 下方存在主题官网路径,按照教程安装即可。

super白4阅读 4.7k

麒麟操作系统 (kylinos) 从入门到精通 - 常用软件安装 - 第三篇 常用软件安装(windows下的习惯)
本篇内容大部分从应用商店进行安装,部分通过官网下载,少部分通过命令行安装。1.原生应用1.1钉钉1.2飞书1.3 蓝信1.4 腾讯文档1.5 金山文档1.6 搜狗输入法(拼音)1.7 五笔输入法1.8 libreoffice官方也带了WPS,...

码上世界3阅读 7.3k评论 17

封面图
深入剖析容器网络和 iptables
Docker 能为我们提供很强大和灵活的网络能力,很大程度上要归功于与 iptables 的结合。在使用时,你可能没有太关注到 iptables 的作用,这是因为 Docker 已经帮我们自动完成了相关的配置。

张晋涛3阅读 1.3k

封面图
Metasploit实现木马生成、捆绑及免杀
在一次渗透测试的过程中,避免不了使用到社会工程学的方式来诱骗对方运行我们的木马或者点击我们准备好的恶意链接。木马的捆绑在社会工程学中是我们经常使用的手段,而为了躲避杀毒软件的查杀,我们又不得不对木...

白风之下1阅读 9k

openSSH升级公钥失效Permission denied (publickey)解决方案
背景centos系统升级openSSH后,服务器上无法再拉取代码,报错如下:原因服务器重新安装SSH后公钥改变,需要重新安装ssh-keygen -t rsa -C "邮箱地址"生成公钥,删除gitlab原有公钥,但是git pull依然报错如下:依...

兰俊秋雨1阅读 1.2k

麒麟操作系统 (kylinos) 从入门到精通 - 办公环境 - 第十三篇 字体安装与windows字体的利用
正常情况下,系统下的wps或libreoffice用到的字体都已默认安装。但有时候一些ttf字体或者microsoft office下一些字体需要安装。我们可以在安装好office、acrobat之后,将C:\windows\Fonts文件夹中的字体(我是win...

码上世界2阅读 3.8k

封面图
34 声望
2 粉丝
宣传栏