Назад | Перейти на главную страницу

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

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

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

У вас есть Redis для прослушивания интерфейса, отличного от localhost или 127.0.0.1? Если это так, то команда остановки никогда не отправляется на правильный интерфейс, поскольку официальный шаблон инициализации 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/#!topic/redis-db/ITtbA1S-GGg

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

Измените свой сценарий инициализации, чтобы использовать '-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)