有人知道如何在“在 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,或者至少研究一下它的脚本。