使用 Auth 在 systemd 中启动 Redis

使用 Auth 在 systemd 中启动 Redis

有人知道如何在“在 systemd 中启动时”将身份验证传递给 redis 吗?您必须在这里使用自定义初始化脚本。我的脚本如下:

[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/utils 中的 redis_init_script 应该怎么做,但是它必须放在 /etc/init.d 中。如果放在 lib/systemd/system 中则不起作用。

答案1

您可以为此创建 systemd 服务覆盖。例如:

# systemctl edit redis.service

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

首先需要丢弃来自原始单元的命令ExecStop=列表。ExecStop=


请注意,这是一个自定义的 redis systemd 单元。Fedora 附带的 redis systemd 单元(以及由雷米RHEL/CentOS 的 redis 版本会调用一个关闭脚本,该脚本会从 redis.conf 读取密码并自动将其传递给 redis-cli,因此无需进行任何自定义。您可能希望使用发行版 redis,或者至少研究一下它的脚本。

相关内容