Redis не выключится

В большинстве случаев, когда я перезагружаю свой сервер Ubunutu, я снова и снова получаю сообщение "Ожидание завершения работы Redis…", и оно никогда не останавливается, пока я не перезапущу принудительно. Что может вызвать это?

У меня есть http://godrb.com/ мониторинг, который продолжает работать, так что это может быть связано с этим.

4 ответа

У вас есть Redis прослушивания на интерфейс, кроме localhost или же 127.0.0.1? Если это так, команда stop никогда не отправляется на правильный интерфейс, так как официальный шаблон инициализации Redis не может содержать адрес хоста.

в /etc/init.d/redis файлы, с которыми я работал, я должен был определить REDISHOST=10.150.0.18 и затем в строке 30 (ищите "завершение") добавьте этот аргумент хоста:

$CLIEXEC -h $REDISHOST -p $REDISPORT shutdown

Если вы были похожи на меня, вам требовался пароль (requirepass) в вашем redis.conf. команда 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/.

Разговор в этом списке может решить вашу проблему:

Измените ваш скрипт инициализации, чтобы использовать '-a' (auth) в вызове redis-cli.

CLIEXEC = "/ usr / local / bin / redis-cli -a пароль"

Другими словами, проблема заключается в том, что вам нужно ввести пароль Redis, чтобы остановить службу. Модификация /etc/init.d/redis_port скрипт (или любой другой скрипт инициализации, который вы можете иметь) с -a password решит это.

Вы можете убить процесс redis:

$ ps -ef|grep "redis"

# kill $(cat /var/run/redis.pid)
Другие вопросы по тегам