我已经在RHEL 7中安装了它并进行了一些配置。 它以root身份启动并运行。
我正在尝试以非root用户身份运行Redis服务。 任何指针都会受到赞赏。
答案 0 :(得分:1)
如果尚未创建用户和组“redis”,请创建它。
useradd redis
然后更改名为" redis-server"的文件的所有者。和#34; redis-cli"(实际上,我建议改变所有关于redis的文件,但我不知道你安装的路径)。
chown redis. "your path"
像这样创建脚本
vim /usr/lib/systemd/system/redis.service
撰写内容
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
User=redis
Group=redis
Type=forking
ExecStart="the absolute path of redis-server" "ths absolute path of redis.conf"
ExecStop="the absolute path of redis-cli" shutdown
[Install]
WantedBy=multi-user.target
然后您可以使用以下代码
systemctl status redis
systemctl start redis //start the service
sysyemctl stop redis //stop the service
systemctl enable redia //start the service when system boot
希望这有帮助!
答案 1 :(得分:0)
对于使用 docker
的用户,您可以使用非 root 用户构建自己的 redis 映像,如下所示:
FROM redis:6.0.10-alpine
# Create the home directory for the new non-root user.
RUN mkdir -p /home/nonroot
# Create an non-root user so our program doesn't run as root.
RUN adduser -S -h /home/nonroot nonroot
VOLUME /home/nonroot/tmp
HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
CMD redis-cli ping
USER nonroot
EXPOSE 6379
答案 2 :(得分:0)
可能还会将工作目录添加到服务中,因为 redis 似乎不会自行更改为该目录(至少在我的配置中):
WorkingDirectory=/var/lib/redis