redis 服务失败,附加文件的权限被拒绝

pka*_*mol 3 redis

我的 redis 服务(从源代码安装)失败并显示此消息 /var/log/redis.log

2309:C 16 Mar 2019 20:16:10.633 # Redis version=5.0.3, bits=64, commit=00000000, modified=0, pid=2309, just started
2309:C 16 Mar 2019 20:16:10.633 # Configuration loaded
2311:M 16 Mar 2019 20:16:10.634 # Can't open the append-only file: Permission denied
Run Code Online (Sandbox Code Playgroud)

但是

root@redis:~# sudo su - redis
redis@redis:~$ touch /var/lib/redis/foobar.txt
redis@redis:~$ echo $?
0
Run Code Online (Sandbox Code Playgroud)

这是我的 /etc/redis.conf

root@redis:~# cat /etc/redis.conf 
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
dir /var/lib/redis
daemonize yes
logfile "/var/log/redis.log"
Run Code Online (Sandbox Code Playgroud)

这是我的 redis 自定义单元文件

root@redis:~# cat /etc/systemd/system/redis.service 
Description=Redis In-Memory Data Store                       
After=network.target                                         

[Service]                                                    
Type=forking                                                 
User=redis                                                   
Group=redis                                                                                
PermissionsStartOnly=true                                                              
ExecStop=/bin/kill -s TERM $MAINPID
PIDFile=/var/run/redis/redis-server.pid
ExecStart=/opt/redis-stable/src/redis-server /etc/redis.conf
Restart=always                                               
RestartSec=3                                                 
LimitNOFILE=65535
ReadWriteDirectories=-/var/lib/redis
ReadOnlyDirectories=/
ReadWriteDirectories=-/var/lib/redis
ReadWriteDirectories=-/var/log/redis
ReadWriteDirectories=-/var/run/redis



[Install]                                                    
WantedBy=multi-user.target  
Run Code Online (Sandbox Code Playgroud)

San*_*tti 5

redis 是作为非root 服务启动的,所以在启动服务前需要调整数据目录的权限。

你只需要执行这个命令:

sudo chown -R 1001:1001 redis-data/
Run Code Online (Sandbox Code Playgroud)

并重启redis

  • 1001 是哪个用户?为什么是1001? (4认同)