Redis多实例启动脚本

WBOY
WBOYオリジナル
2016-06-07 14:50:46829ブラウズ

1,修改redis.conf 设置redis后台启动 daemonize yes 2,编写脚本 vi /etc/init.d/redis #!/bin/sh#chkconfig: 2345 10 90#description: Startup and stop script for RedisPATH=/usr/local/bin:/sbin:/usr/bin:/binREDISPORT_1=6380REDISPORT_2=6381REDISPO

1,修改redis.conf

设置redis后台启动

daemonize yes


2,编写脚本

vi /etc/init.d/redis

#!/bin/sh
#chkconfig: 2345 10 90
#description: Startup and stop script for Redis

PATH=/usr/local/bin:/sbin:/usr/bin:/bin

REDISPORT_1=6380
REDISPORT_2=6381
REDISPORT_3=6382
REDISPORT_4=6383
REDISPORT_5=6384
REDISPORT_6=6385
REDISPORTS=($REDISPORT_1 $REDISPORT_2 $REDISPORT_3 $REDISPORT_4 $REDISPORT_5 $REDISPORT_6)

EXEC=/usr/local/redis/bin/redis-server
REDIS_CLI=/usr/local/redis/bin/redis-cli

PIDFILE_1=/var/run/redis_6380.pid
PIDFILE_2=/var/run/redis_6381.pid
PIDFILE_3=/var/run/redis_6382.pid
PIDFILE_4=/var/run/redis_6383.pid
PIDFILE_5=/var/run/redis_6384.pid
PIDFILE_6=/var/run/redis_6385.pid
PIDFILES=($PIDFILE_1 $PIDFILE_2 $PIDFILE_3 $PIDFILE_4 $PIDFILE_5 $PIDFILE_6)

CONF_1=/usr/local/redis/etc/redis_6380.conf
CONF_2=/usr/local/redis/etc/redis_6381.conf
CONF_3=/usr/local/redis/etc/redis_6382.conf
CONF_4=/usr/local/redis/etc/redis_6383.conf
CONF_5=/usr/local/redis/etc/redis_6384.conf
CONF_6=/usr/local/redis/etc/redis_6385.conf
CONFS=($CONF_1 $CONF_2 $CONF_3 $CONF_4 $CONF_5 $CONF_6)

case "$1" in
    start)
        i=0
        for PID in ${PIDFILES[@]}
        do
                if [ -e $PID ]
                then
                        echo "$PID has exist, process is running"
                else
                        echo "$PID Start ..."
                        $EXEC ${CONFS[i]}
                fi
                if [ "$?" == "0" ]
                then
                        echo "$PID is running"
                else
                        echo "$PID is failed to start"
                fi
                let i++
        done
        ;;

    stop)
        i=0
        for PID in ${PIDFILES[@]}
        do
                if [ ! -e $PID ]
                then
                        echo "$PID does not exist, process is not running"
                else
                        echo "$PID Stoping ..."
                        $REDIS_CLI -p ${REDISPORTS[i]} SHUTDOWN
                        sleep 2
                        while [ -e $PID ]
                        do
                            echo "Waiting for Redis to shutdown ..."
                            sleep 1
                        done
                        echo "$PID stopped"
                fi
                let i++
        done
        ;;

   restart)
        ${0} stop
        ${0} start
        ;;
  *)
    echo "Usage: /etc/init.d/redis {start|stop|restart}" >&2
        exit 1
esac
1,$1:执行命令的第一个参数,例如/etc/init.d/redis start,start就是第一个参数
2,${0}:文件所在路径,例如文件所在路径为/etc/init.d/redis,那么${0}的值就是该路径
3,脚本要放在 /etc/init.d/ 下,不然执行server redis ... 的命令会提示找不到redis


3,添加执行权限

chmod +x /etc/init.d/redis

service redis start
service redis stop<pre name="code" class="plain">service redis restart

4,设置开机启动

chkconfig redis on
chkconfig --add redis




声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。