使用supervisord管理进程

Supervisord是用Python实现的一款非常实用的进程管理工具。 supervisord会帮你把管理的应用程序转成daemon程序,而且可以方便的通过命令开启、关闭、重启等操作,而且它管理的进程一旦崩溃会自动重启,这样就可以保证程序执行中断后的情况下有自我修复的功能。

supervisord只能管理非daemon进程。

安装

sudo easy_install supervisord


sudo pip install supervisord

sudo yum install supervisord

注意:
使用yum默认源安装的supervisord是2.x版本,此版本无法管理被监测程序派生出来的子进程,在restart被监控程序派生出的进程时会有问题。

主要配置

主要配置在program:块中,其余配置(socket、log等)酌情修改即可

sudo vim /etc/supervisord.conf
[program:cc_refresh_inotify] ;程序块名
command=/usr/local/sbin/cc_refresh_inotify.sh ;被监测程序位置
autostart=true    ;被监测程序是否随supervisord同时启动
autorestart=true  ;是否自动重启受监测的程序
stopasgroup=true  ;是否重启被监测程序的所有进程(包括派生出来的子进程)
log_stdout=true   
log_stderr=true
logfile=/data/losg/supervisor/cc_refresh_inotify.log

基本管理

  • supervisord {start|stop|status|restart|reload|force-reload|condrestart}

    supervisord启动、停止、重启等;

  • supervisorctl {start|restart} programxxx
    启动/停止被监测程序;
  • supervisorctl reload
    载入新的配置文件并重启被监测程序;
  • supervisorctl update

    重启修改过配置文件的被监测程序。