由于权限问题,systemctl无法重新启动

zvms9eto  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(646)

我安装了redis并将redis服务器放在/usr/local/bin:

-rwxr-xr-x 1 redis         redis         11044232 Sep 24 00:30 redis-server

我在同一个文件夹/usr/local/bin中有redis.conf:

-rwxr-xr-x 1 redis         redis              120 Oct  6 21:30 redis.conf

我在/etc/systemd/system创建了redis.service:

-rw-r--r-- 1 root root  192 Oct  6 21:46  redis.service

cat redis.conf:目录:

Description=Redis
After=network.target
[Service]
User=redis
Group=redis
Type=Simple
ExecStart=/usr/local/bin/redis-server /usr/local/bin/redis.conf
[Install]
WantedBy=multi-user.target

但当我跑的时候

sudo systemctl restart redis
sudo systemctl status redis

显示:无法打开仅附加的文件:权限被拒绝
如果我在redis.service中将服务单元中的用户和组更改为“root”,并重新启动redis服务器,则会成功启动。
我确实添加了用户redis:

sudo useradd --no-create-home --shell /bin/false redis

原因是什么?我想使用专用用户redis来启动服务器。

g0czyy6m

g0czyy6m1#

原因
用户 redis 没有用户访问权限 /usr/local/bin/appendonly.aof 因为它在里面 /usr/local/bin .
默认情况下,redis工作目录是相对于 redis.conf ,由行设置:

dir ./

解决方案
要么改变 dir ./redis.conf 到可由 redis 用户
或者把 redis.conf 在可由 redis 用户(只有可执行文件应该驻留在 /usr/local/bin (无论如何)

相关问题