当尝试在Ubuntu16.04上启动Redis3.2时,我遇到了一个问题。/etc/redis/redis.conf的变化如下:
#logfile /var/log/redis/redis-server.log
logfile /home/redis/logs/redis-server.log
...
#dir /var/lib/redis
dir /home/redis/data这是journalctl -xe的输出
run-parts[5853]: run-parts: executing /etc/redis/redis-server.pre-up.d/00_exampl
redis-server[5857]: *** FATAL CONFIG FILE ERROR ***
redis-server[5857]: Reading the configuration file, at line 163
redis-server[5857]: >>> 'logfile /home/redis/logs/redis-server.log'
redis-server[5857]: Can't open the log file: Permission denied
systemd[1]: redis-server.service: Control process exited, code=exited status=1
systemd[1]: Failed to start Advanced key-value store.如您所见,启动似乎无法在/home/redis目录下执行任何操作,而它是由redis用户和组(chown -R redis:redis /home/redis应用程序)拥有的。
脚注
touch和chmod日志文件没有修复发布于 2017-09-22 11:12:22
正如注释中的@h0x91B所解释的那样,您可以启用selinux并查看它是否有效。
尽管如此,如果您不想使用selinux,这里有一个解决办法:
systemd服务文件/etc/systemd/system/redis.service,设置ProtectHome=no和添加ReadWriteDirectories=-/home/redissudo systemctl daemon-reload重装系统sudo service redis-server start参考资料
https://stackoverflow.com/questions/46351375
复制相似问题