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

Запуск Redis в systemd с Auth

Кто-нибудь знает, как передать авторизацию в redis "при запуске в systemd". Здесь вы должны использовать собственный сценарий инициализации. Моя следующая:

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

[Service] 
User = redis 
ExecStart = /www/redis/redis-4.0.11/src/redis-server /www/redis/tests/redis.conf 
ExecStop = /www/redis/redis-4.0.11/src/redis-cli shutdown 
RestartSec = 3s 
Restart = on-success

[Install] 
WantedBy = multi-user.target

Я знаю, как это сделать, если использую redis_init_script из redis / utils, но его нужно поместить в /etc/init.d. Он не работает при размещении в lib / systemd / system.

Для этого вы можете создать переопределение службы systemd. Например:

# systemctl edit redis.service

[Service]
ExecStop=
ExecStop=/www/redis/redis-4.0.11/src/redis-cli -a mypassword shutdown

Первый ExecStop= необходимо отбросить список ExecStop= команды от исходного блока.


Обратите внимание, что это настраиваемый модуль redis systemd. Модуль redis systemd, поставляемый с Fedora (и идентичный пакет, созданный Реми для RHEL / CentOS) вызывает сценарий завершения работы, который считывает пароль из redis.conf и автоматически передает его в redis-cli, поэтому настройка не требуется. Возможно, вы захотите использовать дистрибутив redis или, по крайней мере, изучить его скрипты.