centosでredis起動の自己起動を構成する方法

2806 ワード

2014/11/10補足:実はredisのダウンロードパッケージには、/redis-stable/utils/redis_init_scriptのパスで公式に持参した起動スクリプトが含まれています.utilsディレクトリの下にはredis-serverをインストールするスクリプトもあります.
1.redisを修正する.conf、バックグラウンド実行オプションを開きます.
# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize yes

2.スクリプトを作成し、vim/etc/init.d/redis:
# chkconfig: 2345 10 90
# description: Start and Stop redis

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

REDISPORT=6379 #      
EXEC=/usr/local/redis/src/redis-server #      
REDIS_CLI=/usr/local/redis/src/redis-cli #      

PIDFILE=/var/run/redis.pid
CONF="/usr/local/redis/redis.conf" #      

case "$1" in
        start)
                if [ -f $PIDFILE ]
                then
                        echo "$PIDFILE exists, process is already running or crashed."
                else
                        echo "Starting Redis server..."
                        $EXEC $CONF
                fi
                if [ "$?"="0" ]
                then
                        echo "Redis is running..."
                fi
                ;;
        stop)
                if [ ! -f $PIDFILE ]
                then
                        echo "$PIDFILE exists, process is not running."
                else
                        PID=$(cat $PIDFILE)
                        echo "Stopping..."
                        $REDIS_CLI -p $REDISPORT SHUTDOWN
                        while [ -x $PIDFILE ]
                        do
                                echo "Waiting for Redis to shutdown..."
                                sleep 1
                        done
                        echo "Redis stopped"
                fi
                ;;
        restart|force-reload)
                ${0} stop
                ${0} start
                ;;
        *)
                echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
                exit 1
esac

注意1:vimに直接コピーして貼り付け、:wqを保存した後に先頭の文字を失う問題(# chがなくなり、コードBOMの問題)がある可能性がありますが、chkconfigをサポートしていないサービスはどのように解決しますか?vimを使用して開くには、# chを追加します.
注意2:どのようにあなたのredisがパスワードを設定したのか、stopの時にNOAUTH Authentication requiredのエラーが発生する可能性があります.$REDIS_CLI -p $REDISPORT SHUTDOWNこの行はクライアントを通じてredisサービスを接続して閉鎖されているので、$REDIS_CLI -p $REDISPORT -a password SHUTDOWNに変更し、passwordにパスワードを置き換える必要があります.
3.実行権限:
chmod +x /etc/init.d/redis

4.POST:
#        redis
service redis start
service redis stop

#        
chkconfig redis on