centos6 服务器上为应用进程添加守护

为应用进程添加守护,在应用意外退出或服务器重启时,保证应用会被自动重启

安装和配置守护程序(supervisor)

  1. easy_install supervisor (下载安装supervisor)
  2. /usr/local/bin/echo_supervisord_conf > /etc/supervisord.conf  (添加配置文件,从default复制)
  3. printf "[include]\nfiles = supervisor/conf.d/*.conf\n" >> /etc/supervisord.conf (在配置文件中指定子配置位置)
  4. mkdir  -p   /etc/supervisor/conf.d/  (建立子配置文件目录)
  5. mkdir -p /opt/deploy/  (建立supervisor启动配置目录)
  6. vim /opt/deploy/supervisord (添加supervisor启动配置,内容以下:
    #!/bin/sh
    # Source function library.
    . /etc/rc.d/init.d/functions
    supervisorctl="/usr/local/bin/supervisorctl"
    supervisord="/usr/local/bin/supervisord"
    name="supervisor-python"
    [ -f $supervisord ] || exit 1
    [ -f $supervisorctl ] || exit 1
    RETVAL=0
    start() {
         echo -n "Starting $name: "
         $supervisord -c /etc/supervisord.conf
         RETVAL=$?
         echo
         return $RETVAL
    }
    stop() {
         echo -n "Stopping $name: "
        $supervisorctl shutdown
         RETVAL=$?
         echo
         return $RETVAL
    }
    case "$1" in
             start)
                 start
                 ;;
             stop)
                 stop
                 ;;
             restart)
                 stop
                 start
                 ;;
    esac
    exit $REVAL

  7. chmod +x /opt/deploy/supervisord (添加可执行权限)java

  8. ln -s /opt/deploy/supervisord /etc/init.d (注册supervisord,使其能够使用service xxx restart/stop/start)python

  9. chkconfig supervisord on (改变服务的启动信息)vim

 

添加须要守护的应用  

  1. vim  /etc/supervisor/conf.d/xxx.conf (添加xxx应用的守护配置,内容以下:
    [program:xxxx]
    command=/usr/bin/java -Xms2048m -Xmx2048m  -server -jar /home/ec2-user/xxx/xxx.jar
    user=ec2-user
    directory=/home/ec2-user/xxx/logs/..
    autostart=true
    autorestart=true
    startsecs=30
    startretries=1
  2. service supervisord start (启动守护服务)ruby

  3. supervisorctl reload (添加或更新xxx.conf后执行这个命令能够使配置更新)服务器

  4. supervisorctl update (添加或更新xxx.conf后执行这个命令能够使改动当即生效)spa

其余命令

  1. supervisorctl status (列出被守护应用)rest

  2. supervisorctl start/stop xxx  (启动/中止xxx应用,notes:用service xxx stop/kill -9 *** 中止某个应用服务会失效,由于会被守护重启,因此若是要主动中止某个应用要使用这行命令 supervisorctl stop xxxcode

相关文章
相关标签/搜索