Redis не запускается при загрузке с systemd, но работает с ручным запуском

Я установил redis на Ubuntu 16.04 в соответствии с руководством digialtocean . Он использует systemd и должен запускаться при загрузке.

Я могу запустить Redis из cli

sudo systemctl start redis

, и он работает без ошибок или проблем. Однако, когда я перезагружаюсь, redis не запускается. Я пробовал несколько вещей, которые нашел через поиск в Google, но пока ничего не помогло:

  • установка Type = forking или Type = notify (или полное исключение, как в руководстве)
  • Добавление LimitNOFILE = 65536, чтобы избавиться от ошибки ( что он делает, но все равно не загружается)

В journalctl нет явной ошибки:

Lubuntu-16-04 systemd[1]: Starting Redis In-Memory Data Store...
Lubuntu-16-04 redis-server[799]: 799:C 12 Jul 10:34:12.532 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
Lubuntu-16-04 redis-server[799]: 799:C 12 Jul 10:34:12.532 # Redis version=4.0.10, bits=64, commit=00000000, modified=0, pid=799, just started
Lubuntu-16-04 redis-server[799]: 799:C 12 Jul 10:34:12.532 # Configuration loaded
Lubuntu-16-04 redis-server[799]: 799:C 12 Jul 10:34:12.532 * supervised by systemd, will signal readiness
Lubuntu-16-04 systemd[1]: Started Redis In-Memory Data Store.
Lubuntu-16-04 systemd[1]: redis.service: Main process exited, code=exited, status=1/FAILURE
Lubuntu-16-04 systemd[1]: redis.service: Control process exited, code=exited status=1
Lubuntu-16-04 systemd[1]: redis.service: Unit entered failed state.
Lubuntu-16-04 systemd[1]: redis.service: Failed with result 'exit-code'.
Lubuntu-16-04 systemd[1]: redis.service: Service hold-off time over, scheduling restart.
Lubuntu-16-04 systemd[1]: Stopped Redis In-Memory Data Store.

Этот блок повторяется 5 раз в журнале, а затем в конце журнала появляется это сообщение:

Lubuntu-16-04 systemd[1]: redis.service: Start request repeated too quickly.
Lubuntu-16-04 systemd[1]: Failed to start Redis In-Memory Data Store.

В redis log Я вижу следующее:

Creating Server TCP listening socket 192.168.XX.XXX:6379: bind: Cannot assign requested address

Я хочу разрешить удаленное соединение, поэтому я также привязываюсь к «внешнему» IP. Это вызывает сбой запуска Redis? Но при запуске вручную работает нормально. В чем причина проблемы?

0
задан 12 July 2018 в 13:30
1 ответ

Необходимо изменить конфигурацию systemd, и ИМХО неверно, как показано на digitalocean.

Конфигурации модуля systemd После цель должна быть изменена:

[Unit]
Description=Redis In-Memory Data Store
After=network-online.target

В руководство это After = network.target , которое согласно это руководство имеет очень мало значения, например. сеть, вероятно, еще не полностью готова, и, следовательно, привязка к внешнему IP не выполняется.

0
ответ дан 5 December 2019 в 05:34

Теги

Похожие вопросы