Supervisor是一个进程管理工具,官方的说法:

用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断。当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了Supervisor

主要就两个命令:

  • supervisord : supervisor的服务器端部分,启动 supervisor 就是运行这个命令
  • supervisorctl:启动 supervisor 的命令行窗口。

安装(CentOS):

方式一:

yum -y install python-setuptools
easy_install supervisor

方式二:

如果 easy_install 不好使就从官方下载:

wget https://pypi.python.org/packages/source/s/supervisor/supervisor-3.1.3.tar.gz

然后通过 python 安装:

tar zxf supervisor-3.1.3.tar.gz
cd supervisor
python setup.py install

成功安装后可以登录 python 控制台输入 import supervisor 查看是否能成功加载。

生成配置文件(supervisord.conf):

echo_supervisord_conf > /etc/supervisord.conf

修改配置文件:

在 supervisord.conf 最后增加(分号后边的表示注释,可以不写):

[program:bandwidth]
command=python26 /usr/local/bin/bandwidth.sh  ;需要执行的命令wd)
user=root  ;(default is current user, required if root)
autostart=true  ;start at supervisord start (default: true)
autorestart=true  ;whether/when to restart (default: unexpected)
startsecs=3  ;number of secs prog must stay running (def. 1)
stderr_logfile=/tmp/bandwidth_err.log  ;redirect proc stderr to stdout (default false) 错误输出重定向
stdout_logfile=/tmp/bandwidth.log  ;stdout log path, NONE for none; default AUTO, log输出

(更多配置说明请参考:http://supervisord.org/configuration.html

运行命令:

启动 supervisor

supervisord -c /etc/supervisord.conf

打开命令行

[root@52php bin]# supervisorctl status   
bandwidth                        RUNNING   pid 2423, uptime 0:06:35  
[root@iZ2365j7l5bZ bin]# supervisorctl help   
  
default commands (type help <topic>):   
=====================================   
add    clear  fg        open  quit    remove  restart   start   stop  update    
avail  exit   maintail  pid   reload  reread  shutdown  status  tail  version  

ctl中: help // 查看命令

ctl中: status // 查看状态

特别注意:

如果修改了 /etc/supervisord.conf,需要执行 supervisorctl reload 来重新加载配置文件,否则不会生效。。。

常用命令:

  • supervisord,初始启动Supervisord,启动、管理配置中设置的进程。
  • supervisorctl stop programxxx,停止某一个进程(programxxx),programxxx为[program:beepkg]里配置的值,这个示例就是beepkg。
  • supervisorctl start programxxx,启动某个进程
  • supervisorctl restart programxxx,重启某个进程
  • supervisorctl stop groupworker: ,重启所有属于名为groupworker这个分组的进程(start,restart同理)
  • supervisorctl stop all,停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
  • supervisorctl reload,载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
  • supervisorctl update,根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。

实例:Supervisord 管理 beego 系统

  1. 修改配置 /etc/supervisord.conf

    [include]
    files = /etc/supervisord.conf.d/*.conf
  2. 新建管理的应用

    cd /etc/supervisord.conf.d
    vim beepkg.conf

    配置文件:

    [program:beepkg]
    directory = /opt/app/beepkg
    command = /opt/app/beepkg/beepkg
    autostart = true
    startsecs = 5
    user = root
    redirect_stderr = true
    stdout_logfile = /var/log/supervisord/beepkg.log

Linux进程管理工具 Supervisord 的安装 及 入门教程的更多相关文章

  1. Linux进程管理工具Supervisor的安装配置

    目录 Linux进程管理工具Supervisor的安装配置 简介 安装Python包管理工具 安装Supervisor 配置 配置文件参数说明 配置进程管理 启动supervisor 控制进程 交互终 ...

  2. Linux 进程管理工具 supervisord 安装及使用

    Supervisor是用Python实现的一款非常实用的进程管理工具 1.安装过程非常简单 安装python 安装meld3-0.6.8.tar.gz 安装supervisor-3.0a12.tar. ...

  3. 2017.7.21 linux下进程管理工具supervisord的安装与使用

    参考来自:http://blog.haohtml.com/archives/15145 0 操作环境 1 supervisord的介绍 Supervisord是用Python实现的一款非常实用的进程管 ...

  4. Linux进程管理工具

    Linux进程管理工具 Htop yum install htop 参考帮助: http://blog.csdn.net/skh2015java/article/details/53173896 Li ...

  5. Linux进程管理工具——supervisor

    介绍 Supervisord是用Python实现的一款非常实用的进程管理工具 安装 这里用源码 supervisor-.tar.gz .tar.gz cd supervisor- sudo pytho ...

  6. 进程管理工具-Supervisord 使用

    简介 Supervisor 是一个用 Python 写的进程管理工具,可以很方便的用来在 UNIX-like 系统(不支持 Windows)下启动.重启(自动重启程序).关闭进程(不仅仅是 Pytho ...

  7. Linux进程管理工具之ps

    1.PS进程管理指令 ps    -aux USER:用户名称 PID:进程号 %CPU:进程占用CPU的百分比 %MEM:进程占用物理内存的百分比 VSZ:进程占用的虚拟内存大小(单位:KB) RS ...

  8. 进程管理工具之supervisor[安装并使用]

    在Linux服务器中,有时候我们需要一个进程需要可靠的在后台运行,并且能够监控进程状态,在意外结束时能够自动重启等.此时就可以使用supervisor. supervisor 是使用Python开发的 ...

  9. Linux进程管理工具Supervisor

    简述 Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启. 它是通过fork/exec的方式把这些被管 ...

随机推荐

  1. 第5月第10天 node.js的request模块

    1.node.js的request模块 http://www.cnblogs.com/meteoric_cry/archive/2012/08/18/2645530.html

  2. 洛谷 P1056 排座椅 桶排序

    桶排序大法好! 每次一看到这种范围小的题,本萌新就想用桶排. 因为题目中的m,n都小于1000,我们就可以定义两个1000的数组,表示每一行或每一列可以隔开几对讲话的童鞋. 然后再定义两个1000的数 ...

  3. Chrome插件:gitlab activity dashboard background-color

    背景 我一般都是在activity dashboard页看同事的提交记录,这样只要我有权限的项目有人提交了我就能够知道,虽然提交的具体代码压根不看.......但至少能够了解各个项目的开发情况(如果大 ...

  4. redis初使用

    下载地址:https://redis.io/download Redis项目不正式支持Windows.但是,微软开放技术小组开发并维护了针对Win64的Windows端口 windows版下载地址:h ...

  5. 管中窥豹:从Page Performance看Nand Flash可靠性【转】

    转自:https://blog.csdn.net/renice_ssd/article/details/53332746 如果所有的page performace在每次program时都是基本相同的, ...

  6. OpenLayers 3 之 地图图层数据来源(ol.source)详解

    原文地址 source 是 Layer 的重要组成部分,表示图层的来源,也就是服务地址.除了在构造函数中制定外,可以使用 layer.setSource(source) 稍后指定.一.包含的类型 ol ...

  7. 【BZOJ2059】Buying Feed 购买饲料

    题面 约翰开车来到镇上,他要带V吨饲料回家.如果他的车上有X吨饲料,每公里就要花费X^2元,开车D公里就需要D* X^2元.约翰可以从N家商店购买饲料,所有商店都在一个坐标轴上,第i家店的位置是Xi, ...

  8. Divide by Zero 2018 and Codeforces Round #474 (Div. 1 + Div. 2, combined)

    思路:把边看成点,然后每条边只能从下面的边转移过来,我们将边按照u为第一关键字,w为第二关键字排序,这样就能用线段树维护啦. #include<bits/stdc++.h> #define ...

  9. PHP编辑器分享

    Sublime 1 .安装了追踪插件,ctrl+鼠标左键点击PHP函数跳到函数声明的位置. 2.已汉化 链接:http://pan.baidu.com/s/1hs5qonE 密码:b8fw 相关文章: ...

  10. 016 jquery中html与val得到使用

    1.属性操作 2.设置html . 3.程序(关于html) <!DOCTYPE html> <html> <head> <meta charset=&quo ...