1.supervisor工具
    
    基于python的进程管理工具,server端是supervisord,client端是supervisorctl命令
    
    当应用服务器要部署多个服务程序,机器关闭,重启的批量维护。此时supervisor是一个不错的
    
    选择。supervisor可以同时启动所以应用程序而不用逐个启动。
    
    Supervisor的功能如下:
    
    1 启动、重启、关闭包括但不限于python进程。
    
    2 查看进程的运行状态。
    
    3 批量维护多个进程。
   
    2.安装
    
    安装好supervisor之后默认是没有生成配置文件的,可以通过命令生成配置文件。
   
    supervisor组件
    
    1.supervisord是supervisor的服务端程序。
    
    作用:启动supervisor程序自身,启动supervisor管理的子进程,响应来自clients的请求,
    
    重启闪退或异常推出的子进程,把子进程的错误和输出记录到日志文件中,生成和处理Event。
   
    2.supervisorctl是supervisor的client端
    
    supervisorctl有一个类型shell的命令行界面,可以利用它来查看子进程的状态,启动/停止。重启
    
    子进程,获取running子进程的列表等等。。。
    
    而且supervisorctl不仅可以连接到本机上的supervisord,还可以连接远程的supervisord,在
    
    本机上是通过UNIX socket连接的,远程是通过tcp socket连接的。supervisorctl和supervisord
    
    之间的通信,是同过xml_rpc完成的。相应的配置在[supervisorctl]块里面。
   
    配置
    
    1.测试是否安装成功
    
    echo_supervisord_conf
    
    2.生成配置文件
    
    echo_supervisord_conf > /etc/puservisord.conf(一般放在/etc/下面)
    
    3.打开配置文件:vim /etc/puservisord.conf
    
    4.在配置文件底部,配置include
    
    [include]
    
    files=/etc/puservisor/*.conf
   
    
    3.supervisorctl命令
    
    1.启动:
    
    supervisod -c /etc/supervisord.conf(如果不指定配置文件启动,则会从当前位置开始查找)
    
    supervisod
   
    2.查看supervisord是否运行:
    
    ps aux | grep supervisord
   
    3.修改完配置之后需要重启supervisor
    
    supervisorctl reload
   
    4.查看supervisor监管的进程状态
    
    supervisorctl status
   
    5.启动XXX进程
    
    supervisorctl start xxxxx
   
    6.停止XXXX进程
    
    supervisorctl stop  xxxxx
   
    7.停止全部的进程
    
    supervisorctl stop all
    
    注意:start, restart, stop都不会载入最新的配置文件
   
    8.根据最新的配置文件,启动新配置或者有改动的进程,配置没有变化的进程不会受影响而重启
    
    supervisorctl update
    
   
 
