天天看点

supervisord

工作需要,找点资料学习下:

 Supervisor(http://supervisord.org )是用Python开发的一个clien&t/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。

 因为Supervisor是Python开发的,安装前先检查一下系统否安装了Python2.4以上版本。下面以CentOS7,Python2.7版本环境下,介绍Supervisor的安装与配置步聚:

  1) 安装easy_install (python包管理器)

     <code>yum install easy_install</code>

  2)安装supervisor

     <code>easy_install supervisor</code>

Debain/Ubuntu版本:

 supervisor安装完成后会生成三个执行程序:supervisortd、supervisorctl、echo_supervisord_conf,分别是supervisor的守护进程服务(用于接收进程管理命令)、客户端(用于和守护进程通信,发送管理进程的指令)、生成初始配置文件程序。

 首先生成配置文件:

进程管理配置参数,不建议全都写在supervisord.conf文件中,应该每个进程写一个配置文件放在include指定的目录下包含进supervisord.conf文件中。

接着就可以用控制了

注意:

 Supervisor只能管理非daemon的进程,也就是说Supervisor不能管理守护进程。否则提示Exited too quickly (process log may have details)异常。例子中的Tomcat默认是以守护进程启动的,所以我们改成了catalina.sh run,以前台进程的方式运行。

 如果command的栏运行的是shell脚本,那么在shell 脚本启动被监控程序时要用exec修饰。例如:

否则,supervisord停止不了启动的进程.除此之外,shell脚本里不能出现&amp;之类的后台运行符号。

继续阅读