ほとんどの場合、Ubunutuサーバーを再起動すると、「Redisのシャットダウンを待機しています...」というメッセージが繰り返し表示され、強制的に再起動するまで停止しません。何が原因でしょうか?
私は http://godrb.com/ resqueが動作し続けることを監視しているので、それに関連している可能性があります。
Redisはlocalhost
または127.0.0.1
以外のインターフェースでリッスンしていますか?その場合、 公式のRedis initテンプレートがホストアドレスを含めることができない であるため、stopコマンドが正しいインターフェイスに送信されることはありません。
これまでに使用した/etc/init.d/redis
ファイルでREDISHOST=10.150.0.18
を定義し、30行目(「shutdown」を探す)にそのHost引数を追加する必要がありました。
$CLIEXEC -h $REDISHOST -p $REDISPORT shutdown
私のような人なら、redis.confにパスワード(requirepass)が必要でした。現在、redis-cliコマンドはパスワードなしでは応答しません。
/etc/init.d/redisファイルの最初の数行でCLIEXECを探し、デフォルトを変更します
CLIEXEC=/usr/local/bin/redis-cli
に
CLIEXEC="/usr/local/bin/redis-cli -a <password>"
引用符に注意してください。
これを行ったとき、-h $ REDISHOSTパラメータを含める必要はありませんでした。
アイデアのソースについては、こちらをご覧ください: https://groups.google.com/forum/#!topic/redis-db/ITtbA1S-GGg
このリスト での会話はあなたの問題を解決することができます:
Redis-cli呼び出しで '-a'(auth)を使用するようにinitスクリプトを変更します。
CLIEXEC = "/ usr/local/bin/redis-cli -a password"
つまり、問題は、サービスを停止するためにRedisパスワードを入力する必要があるという事実です。 /etc/init.d/redis_port
スクリプト(または他の任意の初期化スクリプト)を-a password
で変更すると、問題が解決します。
あなたはredisプロセスを殺すことができます:
$ ps -ef|grep "redis"
# kill $(cat /var/run/redis.pid)