Кто-нибудь знает, как передать авторизацию в 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 или, по крайней мере, изучить его скрипты.