如何解决由于权限问题,systemctl重新启动失败
我安装了redis并将redis-server放在/ 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服务器已成功启动。
sudo useradd --no-create-home --shell /bin/false redis
解决方法
原因
用户redis
无权访问/usr/local/bin/appendonly.aof
,因为它位于/usr/local/bin
中。
默认情况下,Redis工作目录是相对于redis.conf
的,如以下行所示:
dir ./
解决方案
- 将
dir ./
中的redis.conf
更改为redis
用户可写的目录 - 或将
redis.conf
放置在redis
用户可写的目录中(无论如何,只有可执行文件应驻留在/usr/local/bin
中)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。