CentOS 7 Redis起動の設定

4260 ワード

CentOS 7 Redis起動の設定
前言
以前の記事(CentOS 7構成Redis)では、構成Redisのインストール方法について学習していましたが、その記事ではRedisのPOSTの設定方法については説明していません.そこで今回は、Redisが起動してから起動する内容を補足します.
環境準備
  • CentOS 7 64ビット
  • 以前の記事に従ってインストールされたRedis 4.0.9(以下の経路は私の環境であり、実際の操作は自分の基準であり、以下同じ)
  • Redisソース圧縮パッケージ解凍パスは/root/redis-4.0.9
  • Redisのインストールパスは/usr/local/redis
  • にあります.
  • Redisプロファイルredis.confは/usr/local/redis/binディレクトリの下に格納され、バックエンド起動
  • に変更された.

    Redis起動スクリプトのコピー
    #    Redis      ,   Redis          
    cd /root/redis-4.0.9/utils
    #       
    cp redis_init_script /etc/init.d/redis
    

    デフォルトのスクリプト構成は次のとおりです.
    #!/bin/sh
    #
    # Simple Redis init.d script conceived to work on Linux systems
    # as it does use of the /proc filesystem.
    
    ### BEGIN INIT INFO
    # Provides:     redis_6379
    # Default-Start:        2 3 4 5
    # Default-Stop:         0 1 6
    # Short-Description:    Redis data structure server
    # Description:          Redis data structure server. See https://redis.io
    ### END INIT INFO
    
    REDISPORT=6379
    EXEC=/usr/local/bin/redis-server
    CLIEXEC=/usr/local/bin/redis-cli
    
    PIDFILE=/var/run/redis_${REDISPORT}.pid
    CONF="/etc/redis/${REDISPORT}.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
            ;;
        stop)
            if [ ! -f $PIDFILE ]
            then
                    echo "$PIDFILE does not exist, process is not running"
            else
                    PID=$(cat $PIDFILE)
                    echo "Stopping ..."
                    $CLIEXEC -p $REDISPORT shutdown
                    while [ -x /proc/${PID} ]
                    do
                        echo "Waiting for Redis to shutdown ..."
                        sleep 1
                    done
                    echo "Redis stopped"
            fi
            ;;
        *)
            echo "Please use start or stop as first argument"
            ;;
    esac
    

    主に次のコードに注目します.
    # Redis   ,    6379,       
    REDISPORT=6379
    # redis-server    redis-cli      ,  Redis        bin    ,         
    EXEC=/usr/local/bin/redis-server
    CLIEXEC=/usr/local/bin/redis-cli
    
    #         /etc/redis/6379.conf
    PIDFILE=/var/run/redis_${REDISPORT}.pid
    CONF="/etc/redis/${REDISPORT}.conf"
    

    構成スクリプト
    #     
    vi /etc/init.d/redis
    

    以下のredis-serverおよびredis-cliが自分のRedisにインストールされているディレクトリを変更します.ここでは/usr/local/redisです.iキーを押して編集します.変更後のスクリプトは次のとおりです.
    # Redis   ,    6379,       
    REDISPORT=6379
    # redis-server    redis-cli      ,  Redis        bin    ,         
    EXEC=/usr/local/redis/bin/redis-server
    CLIEXEC=/usr/local/redis/bin/redis-cli
    
    #             /etc/redis/6379.conf
    #                ,                    
    PIDFILE=/var/run/redis_${REDISPORT}.pid
    CONF="/etc/redis/${REDISPORT}.conf"
    
    Escキーを押し、:wqを入力し、Enterキーを押してファイルを保存します.
    ここでは、読み取りプロファイルのパスを変更するのではなく、/etc/redisフォルダの下にプロファイルをコピーします.このフォルダはデフォルトではありませんので、作成します.
    #    /etc/redis    
    mkdir /etc/redis
    #        redis.conf   /etc/redis/6379.conf
    cp /usr/local/redis/bin/redis.conf /etc/redis/6379.conf
    

    起動時に設定
    次のコマンドを実行して、Redisをオンに設定します.
    chkconfig redis on
    

    その他の関連コマンド
    #       
    chkconfig redis off
    #    redis   
    service redis start
    #    redis   
    service redis stop
    

    問題と解決策
    に質問
    以上の設定で、個人はCentOS 7 64ビットで問題なく、正常に起動してRedisを起動することができます.一部の環境では、次のコマンドを実行するとエラーが発生します.
    chkconfig redis on
    

    エラーメッセージは次のとおりです.
    service redis does not support chkconfig
    

    ソリューション
    編集/etc/init.d/redisファイルは、前のコメントに、次の2行のコメントを追加して保存すればよい
    # chkconfig: 2345 90 10
    
    # description: Redis is a persistent key-value database
    

    参考資料
  • service redis does not support chkconfigの解決方法
  • 後記
    自分でスクリプトを作成して、vi /etc/init.d/redis、上のスクリプトの内容をコピーして、修正保存することもできます.ただし、スクリプトに権限を設定し、公式に提供されたスクリプトに従って権限を設定する必要がある場合は、コマンドはchmod 755 /etc/init.d/redisです.
    実践の中で成長する
    HochenChong
    2018-10-10