Supervisor 的安装与配置教程
简介
Supervisor是一个进程控制系统. 它是一个C/S系统(注意: 其提供WEB接口给用户查询和控制), 它允许用户去监控和控制在类UNIX系统的进程. 它的目标与launchd, daemontools和runit有些相似, 但是与它们不一样的是, 它不是作为init(进程号pid是1)运行. 它是被用来控制进程, 并且它在启动的时候和一般程序并无二致.
通俗点,它的作用是什么?你的 Nginx,Tomcat,memcache,Redis...会崩么,不会?好吧,那你自己写的服务器监测脚本呢?好吧,不要再纠结了,交给 Supervisor 吧,它会帮你维护这些,即使它们不小心崩了,Supervisor 会帮你看住它们,维护它们。
依赖
supervisor 需要有 Python 环境。如果你是通过 pip 或者 easy_install 来安装的话,还需要 Python-seutptools 或者 python-pip,这些库的安装方法,在此处就不再一一介绍,自己查阅文档搞定。
安装
我这里是通过源码来安装的。
wget下载安装包
- 解压到本地后,通过运行
setup.py install安装
- tar -xzvf supervisor-3.3.3.tar.gz
- cd supervisor-3.3.3
- python setup.py install
至此,安装完成了。接下来,我们需要设置 supervisor 的配置文件。
配置 Supervisor
- 首先,需要生成全局配置文件
- echo_supervisord_conf > /etc/supervisord.conf
- supervisord -c /etc/supervisord.conf
- 接着,我们需要修改下生成的 /etc/supervisord.conf 文件。我们在末尾添加 supervisor 的配置文件目录:
[include]
files = /etc/supervisord.d/*.ini
这里是指定了 supervisor 的配置文件目录以及文件名。今后如果有新的应用是需要supervisor来管理的,我们只需要到 /etc/supervisord/ 目录下,新建一个 xxx.ini 文件后,update 下就可以被 supervisor 加载到了。这里的目录不是必须是设置成当前目录。
- 配置完成后,我们需要让配置生效。
supervisord -c /etc/supervisord.conf
- 查看下是否run起来了
ps aux | grep supervisord
至此,supervisor 的配置就完成了。接下来,我们需要配置 Sentry 的 ini 文件,让 supervisor 来管理 Sentry 的进程。
配置 Sentry
- 根据上面的配置,我们在 /etc/supervisord.d/ 目录下新建
sentry.ini文件。
- touch sentry.ini
- 接下来,需要配置下 sentry.ini 文件。这里,我的配置信息如下:
[program:sentry_web]
command=/home/django_sentry/sentry/bin/sentry --config=/home/django_sentry/.sentry run web
user=django_sentry
autostart=true
autorestart=true
startsecs=5
startretries=3
stdout_logfile=/tmp/sentry_web_access.log
stderr_logfile=/tmp/sentry_web_error.log
[program:sentry_worker]
command=/home/django_sentry/sentry/bin/sentry --config=/home/django_sentry/.sentry run worker
user=django_sentry
autostart=true
autorestart=true
startsecs=5
startretries=3
stdout_logfile=/tmp/sentry_worker_access.log
stderr_logfile=/tmp/sentry_worker_error.log
[program:sentry_cron]
command=/home/django_sentry/sentry/bin/sentry --config=/home/django_sentry/.sentry run cron
user=django_sentry
autostart=true
autorestart=true
startsecs=5
startretries=3
stdout_logfile=/tmp/sentry_cron_access.log
stderr_logfile=/tmp/sentry_cron_error.log
这里,指定了三个 program,分别是 sentry_web, senry_worker, sentry_cron, 对应的指令分别就是 sentry run web, sentry run worker, sentry run cron。每个参数的说明在此不再赘述,详见: supervisor configuration。
配置完后,我们运行 supervisorctl reload 指令来重新加载下配置,这时候,通过 supervisorctl 来查看每个进程的启动执行情况如下:

如果运行不正常,可以使用 restart xxx 来重启某个进程,也可以 stop xxx 来停止某个进程。如果在重启中,可以通过 status 来查看启动的进度。只有当显示是 RUNNING 状态的时候,才表示运行正常。这里的截图显示,三个进程都已经运行起来了。 exit 退出。
今后,当我们在配置的目录中新增或更新了文件后,可以通过 supervisorctl update 来记载最新的配置。
至此, Supervisor 的安装和配置就结束了。
参考
Supervisor 的安装与配置教程的更多相关文章
- Tomcat7安装及配置教程
Apache Tomcat7.0安装及配置教程.. Apache Tomcat7.0官方网站链接:http://tomcat.apache.org/ apache-tomcat-7.0.73-wi ...
- Tomcat8安装及配置教程
Apache Tomcat8.0安装及配置教程.. Apache Tomcat8.0官方网站链接:http://tomcat.apache.org/ apache-tomcat-8.0.39-wi ...
- Mysql免安装版配置教程和常用命令图
Mysql免安装版配置教程 图文版 配置环境变量 新建一个my.ini文件,添加下面内容 [mysqld] basedir=C:\\software\Mysql\mysql-5.7.14-winx64 ...
- jdk eclipse SDK下载安装及配置教程
原文地址https://blog.csdn.net/dr_neo/article/details/49870587 最新鲜最详细的Android SDK下载安装及配置教程 最近Neo突发神经,想要将学 ...
- 2018年Unity结合Android SDK下载安装及配置教程
原文:2018年Unity结合Android SDK下载安装及配置教程 首先声明: Unity版本2017.1f3 最近试着在Unity中利用网易做AR开发时,发布项目文件需要发布到An ...
- Termux 高级终端安装使用配置教程
Termux 高级终端安装使用配置教程,这篇文章拖了有小半年.因为网上相关的文章相对来说还是比较少的,恰好今天又刷了机,所以就特意来总结一下,希望本文可以帮助到其他的小伙伴.发挥Android平台更大 ...
- Android Studio安装、配置教程全 - 安卓开发环境的配置手册
Android Studio的安装.配置 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 一 Downloa ...
- Nginx 安装与配置教程
标签: Nginx Linux Windows 配置 描述: Ubuntu 下以及 Windows 下 Nginx 的配置:配置详解:有关 Nginx 如何配置 Nginx 在 Ubuntu 下的安装 ...
- Linux版OpenVPN安装、配置教程(转)
本文将以目前最新的openvpn-2.3.4.tar.gz(更新于2014-5-2,下载地址)为例来介绍如何在Linux系统中安装.配置及使用OpenVPN. 在这里,我们选用了一台预装CentOS ...
随机推荐
- 程序员之---C语言细节12(指针和数组细节,"//"的可移植性说明)
主要内容:指针和数组细节,"//"的可移植性说明 #include <stdio.h> int main(int argc, char **argv) { int a[ ...
- POJ--1966--Cable TV Network【无向图顶点连通度】
链接:http://poj.org/problem?id=1966 题意:一个无向图,n个点,m条边,求此图的顶点连通度. 思路:顶点连通度,即最小割点集里的割点数目.一般求无向图顶点连通度的方法是转 ...
- View注入框架:Butterknife简单使用
View注入框架 下载地址 1.Activity Binging 通过@Bind凝视字段,Butter Knife能够通过View的ID自己主动找到并把对应的视图布局. class ExampleAc ...
- FZOJ--2212--Super Mobile Charger(水题)
Problem 2212 Super Mobile Charger Accept: 3 Submit: 11 Time Limit: 1000 mSec Memory Limit : 32 ...
- 关键字super
1.super,相较于关键字this,可以修饰属性.方法.构造器 2.super修饰属性.方法:在子类的方法.构造器中,通过super.属性或者super.方法的形式,显式的调用父类的指定 属性或方法 ...
- Ionic CLI升级到3版本后2版本工程运行出错.md
1. 问题描述: 最近将Ionic的CLI升级到了最新的版本3.2,升级后在原来Ionic2版本的CLI中创建的工程,通过ionic serve运行报错,错误类似如下: C:\Users\Admin\ ...
- UI Framework-1: Aura Event Handling
Event Handling A diagram of the architecture of this system: HWNDMessageHandler owns the WNDPROC ...
- react 中间件相关的一些源码解析
零.随便说说中间件 在react的使用中,我们可以将数据放到redux,甚至将一些数据相关的业务逻辑放到redux,这样可以简化我们组件,也更方便组件抽离.封装.复用,只是redux不能很好的处理异步 ...
- shell清除日志小脚本
#!/bin/bash #清除日志脚本 LOG_DIR=/var/log ROOT_UID=0 #用户id为0的 ,即为root if [ "$UID" -ne "$RO ...
- Spring Cloud学习笔记【四】断路器Hystrix
雪崩效应 在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服务雪崩效应.服务雪崩效应是一种因 “服务提供者” 的不可用导致 “服务消 ...