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端可以重启,停止,清理日志,查看日志等多个操作

supervisor相关的几个命令
安装完毕,会生成3个系统命令supervisorctl、supervisord和echo_supervisord_conf
supervisord,运行supervisor时会启动一个进程supervisord,它负责启动所管理的进程,并将所管理的进程作为自己的子进程来启动,而且可以在所管理的进程出现崩溃时自动重启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 根据最新的配置,重启配置更改过的进程,未更新的进程不受影响 echo_supervisord_conf
用来生成默认的配置文件(默认配置文件,内容非常齐全且都有注释,适合用时查阅,用法是这样的
echo_supervisord_conf > test.conf
3分钟学会如何上手supervisor看门狗的更多相关文章
- Linux 下如何使用看门狗
Linux内核有集成WD的选项.将其使能后,系统里就会有watchdog的设备驱动:/dev/watchdog.这样,在应用程序里只需打开这个设备使用即可:#include <fcntl.h ...
- stm8的独立看门狗与窗口看门狗
STM8拥有两个硬件看门狗,分别叫做独立看门狗和窗口看门狗 独立看门狗的框图如下 我们可以看到,独立看门狗的时钟来自于LSI内部低速振荡器,经过二分频到达看门狗外设单元,在经过一个七位的预分频到达计数 ...
- 在多任务(RTOS)环境中使用看门狗
最近在SEGGER的博客上看到一篇有关在实时操作系统使用看门狗的文章.从一个失败的太空项目出发,分析了看门狗的作用及使用,自我感觉很有启发,特此翻译此文并推荐给各位同仁.为了阅读方便,有些航天领域名词 ...
- 给树莓派安装看门狗的两种方法,二代B
树莓派的CPU是保护有硬件看门狗的,可以通过安装模块和值守程序来实现看门狗防止树莓派死机. 安装方法一:watchdog.sh的源码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
- iOS- Exception Type: 00000020:什么是看门狗机制
1.前言 前几天我们项目闪退之后遇到的一个Crash,之后逛了许多论坛,博客都没有找到满意的回复 在自己做了深入的研究之后,对iOS的看门狗机制有了一个基本的了解 而有很多奇怪的Cras ...
- FreeRTOS 独立看门狗监测任务执行状态
以下转载自安富莱电子: http://forum.armfly.com/forum.php 通过前面的几个章节,我们基本已经完成了 FreeRTOS 所有功能的讲解,本章节为大家介绍一种使用独立看门狗 ...
- Linux 软件看门狗 watchdog 喂狗
Linux 自带了一个 watchdog 的实现,用于监视系统的运行,包括一个内核 watchdog module 和一个用户空间的 watchdog程序.内核 watchdog 模块通过 /dev/ ...
- 一分钟学会 ConstraintLayout 之从属性角度理解布局
ConstraintLayout 在 Android 开发中,我们通常是手写布局,很少会用拖动来写布局,虽然 ConstraintLayout 在 I/O 上以拖动来展现了各种功能,我估计在以后开发中 ...
- iOS- Exception Type: 00000020:什么是看门狗机制(转)
1.前言 前几天我们项目闪退之后遇到的一个Crash,之后逛了许多论坛,博客都没有找到满意的回复 在自己做了深入的研究之后,对iOS的看门狗机制有了一个基本的了解 而有很多奇怪的Crash可 ...
随机推荐
- python ---线程,进程,协程
本章内容 线程 进程 协程 线程是最小的调度单位 进程是最小的管理单元 线程 多线程的特点: 线程的并发是利用cpu上下文切换 多线程的执行的顺序是无序的 多线程共享全局变量 线程是继承在进程里的,没 ...
- UML——活动图
宏观导图 是森马? 活动图,属于UML中动态建模工具图,它描述活动的顺序,展现从一个活动到另一个活动的控制流.活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程. 其实,说白了 ...
- Cisco WS-C4503-E CPU使用率高问题排查
现状描述: 办公网环境下由2台VSS模式下WS-C4503-E 作为核心交换机,下接若干台WS-C2960X-48LPS-L作为接入.行政同事在进行工位改造的时候为方便将原工位网线下联若干台hub. ...
- Python实现量子态采样
什么是量子态矢量? 在前面一篇量子系统模拟的博客中,我们介绍了使用python去模拟一个量子系统演化的过程.当我们尝试理解量子态和量子门操作时,可以通过其矩阵形式的运算来描述量子态演化的过程: \[\ ...
- POJ 1743 Musical Theme【SAM】
POJ1743 Musical Theme 要找长度\(\ge 5\)且出现次数\(\ge 2\)并且第一次出现和最后一次出现不重叠的最长子串. 题目条件中,如果对于两个串,在一个串的每个数上都加上相 ...
- C - Last Digit
Description The function f(n, k) is defined by f(n, k) = 1k + 2k + 3k +...+ nk. If you know the valu ...
- Atcoder Educational DP Contest I - Coins (概率DP)
题意:有\(n\)枚硬币,每枚硬币抛完后向上的概率为\(p[i]\),现在求抛完后向上的硬币个数大于向下的概率. 题解:我们用二维的\(dp[i][j]\)来表示状态,\(i\)表示当前抛的是第\(i ...
- CF1462-D. Add to Neighbour and Remove
codeforces1462D 题意: 给出一个由n个数组成的数组,现在你可以对这个数组进行如下操作:将数组中的一个元素加到这个元素的两边中的一边,然后将这个元素删掉.若该元素在最左边,那么该元素不能 ...
- 包机制和javadoc
包机制 一般用公司域名倒置作为包名: eg com.baidu.www 可以在src里自己鼠标右键建立包,包内可以存放代码, 包的路径必须在最上面, eg:package com.kuang; (自动 ...
- 基于Vue的单页面应用的Markdown渲染
之前渲染 Markdown 的时候, 笔者使用的是 mavonEditor 的预览模式, 使用起来比较爽, 只需要引入组件即可, 但是在最近的开发中, 遇到了困难. 主要问题在于作为单页面应用, 站内 ...