1、supervisor安装文件,安装命令为:sh supervisor_install.sh

#!/bin/bash

yum -y install python-setuptools
easy_install 'supervisor==3.3.4'
echo "alias 'supervisorctl'='supervisorctl -c /opt/superctl/etc/supervisor.conf'" >> ~/.bashrc


mkdir -p /opt/superctl/bin/
mkdir -p /opt/superctl/log/
mkdir -p /opt/superctl/etc/

chmod -R 755 /opt/superctl/bin/
chmod  755 /opt/superctl/supervisor.sh


cd /opt/superctl/etc/

cat > supervisor.conf << EOF
[unix_http_server]
file=/opt/superctl/log/supervisord.sock

[inet_http_server]
port=127.0.0.1:9001

[supervisord]
logfile=/opt/superctl/log/supervisord.log
logfile_maxbytes=20MB
logfile_backups=10
loglevel=info
pidfile=/opt/superctl/log/supervisord.pid
nodaemon=false
minfds=60000
minprocs=200
#directory=/opt/superctl/
childlogdir=/opt/superctl/log/

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///opt/superctl/log/supervisord.sock ; use a unix:// URL  for a unix socket

[include]
files = /opt/superctl/etc/*.supervisor
EOF

cat > test.supervisor.temple << EOF
[program:test]
command = /bin/bash /opt/superctl/bin/test_start.sh
autostart = true
autorestart = true
stdout_logfile = /opt/superctl/log/test-stdout.log
stderr_logfile = /opt/superctl/log/test-stderr.log
stdout_logfile_maxbytes = 500MB
stdout_logfile_backups = 50
stdout_capture_maxbytes = 1MB
stdout_events_enabled = false
loglevel = info
priority = 1
stopasgroup = true
EOF

2、在superctl目录下添加supervisor.sh文件

#
# chkconfig: 2345 12 80
# 配置文件:/opt/superctl/etc/supervisor.conf
# 
source ~/.bashrc

PATH=/sbin:/usr/sbin:$PATH


usage ()
{
        echo $"Usage: $0 {start|stop|status|restart}" 1>&2
        RETVAL=2
}

start ()
{
  if [ -e /opt/superctl/etc/supervisor.conf ] ;then
       if [ `ps -ef|grep "/opt/superctl/etc/supervisor.conf"|grep -v grep|wc -l` -ne 0 ];then
                         sleep 1
                   echo "/opt/superctl/etc/supervisor.conf 进程正在运行"
                   ps -ef|grep " /opt/superctl/etc/supervisor.conf"|grep -v grep
                else
                         sleep 1
                    /bin/supervisord -c /opt/superctl/etc/supervisor.conf
        fi
  fi
}

stop ()
{
if [ `ps -ef|grep " /opt/superctl/etc/supervisor.conf"|grep -v grep|wc -l` -eq 1 ];then
         supervisorctl stop all
         sleep 4
         /bin/supervisorctl shutdown
fi
}

status ()
{
/bin/supervisorctl status
}


restart ()
{
        stop
        sleep 3
        start
}

case "$1" in
    stop) stop ;;
    status) status ;;
    restart) restart ;;
    start) start ;;
    *) usage ;;
esac

exit $RETVA

3、启动命令: sh supervisor.sh start|stop|restart