【产生背景】
在一个分布式环境中,每台机器上可能需要启动和停止多个进程,使用命令行方式一个一个手动启动和停止非常麻烦,而且查看每个进程的状态也很不方便。如果有一个工具能够实现每台机器上多个进程的简单高效中心化管理将是非常方便的。于是Supervisord工具应运而生。与Supervisord类似的工具包括monit, daemontools和runit。本文只涉及Supervisord。
【简介】
supervisord的官网:http://supervisord.org。看懂英文的可以不用看我的博客,直接看文档就行了,文档写得非常好。点个赞!!
Supervisor是一个客户/服务器系统,它可以在类Unix系统中管理控制大量进程。Supervisor使用python开发,有多年历史,目前很多生产环境下的服务器都在使用Supervisor。
Supervisor的服务器端称为supervisord,主要负责在启动自身时启动管理的子进程,响应客户端的命令,重启崩溃或退出的子进程,记录子进程stdout和stderr输出,生成和处理子进程生命周期中的事件。可以在一个配置文件中配置相关参数,包括Supervisord自身的状态,其管理的各个子进程的相关属性。配置文件一般位于/etc/supervisord.conf。
Supervisor的客户端称为supervisorctl,它提供了一个类shell的接口(即命令行)来使用supervisord服务端提供的功能。通过supervisorctl,用户可以连接到supervisord服务器进程,获得服务器进程控制的子进程的状态,启动和停止子进程,获得正在运行的进程列表。客户端通过Unix域套接字或者TCP套接字与服务端进行通信,服务器端具有身份凭证认证机制,可以有效提升安全性。当客户端和服务器位于同一台机器上时,客户端与服务器共用同一个配置文件/etc/supervisord.conf,通过不同标签来区分两者的配置。
Supervisor也提供了一个web页面来查看和管理进程状态,这个功能用得人比较少。
【平台要求】
Supervisor可以运行在大多数Unix系统上,但不支持在Windows系统上运行。
Supervisor需要Python2.4及以上版本,但任何Python 3版本都不支持。
说明 :最近在做任务导出的时候用到了,不停的执行从队列获取数据执行导出计划,非常的实用,推荐给大家;
安装依赖包
yum -y install docbook-style-xsl xmlto git wxGTK wxGTK-devel expat expat-devel librabbitmq make gcc44 gcc44-c++ libstdc++44-devel hg libtool openssl openssl-devel unixODBC unixODBC-devel unixODBC-libs ncurses ncurses-devel tk python26 libtool autoconf automake xmlto nmap.x86_64 xmlto.x86_64
安装python
cd /usr/local/src
tar zxvf Python-2.7.3.tgz
cd Python-2.7.3
./configure
make && make install
cd /usr/local/src
sh setuptools-0.6c11-py2.7.egg
easy_install supervisor
建立配置文件 如下参考