记Linux系统设置Redis指定普通用户开机自启动,报错:Can't open the log file: Permission denied

问题描述:

已经配置好Redis开机自启动的systemd服务文件后,开机查看Redis进程不存在,Redis没有自启成功。

image

使用journalctl -u 命令查看启动日志发现报错:

8月 05 09:45:40 localhost.localdomain systemd[1]: Starting Redis persistent key-value database...
8月 05 09:45:40 localhost.localdomain redis-server[1085]: *** FATAL CONFIG FILE ERROR ***
8月 05 09:45:40 localhost.localdomain redis-server[1085]: Reading the configuration file, at line 26
8月 05 09:45:40 localhost.localdomain redis-server[1085]: >>> 'logfile "7003.log"'
8月 05 09:45:40 localhost.localdomain redis-server[1085]: Can't open the log file: Permission denied
8月 05 09:45:40 localhost.localdomain systemd[1]: redis_7003.service: control process exited, code=exited status=1
8月 05 09:45:40 localhost.localdomain systemd[1]: Failed to start Redis persistent key-value database.
8月 05 09:45:40 localhost.localdomain systemd[1]: Unit redis_7003.service entered failed state.
8月 05 09:45:40 localhost.localdomain systemd[1]: redis_7003.service failed.

image

 提示说明7003.log日志文件权限不足,于是修改redis.conf中指定的7003.log权限

尝试使用chomd 777 修改文件权限:

image

再次重启发现还是提示7003.log日志文件权限不足:

image

 于是查看对应的redis.conf配置文件:本文对应是在/usr/local/redis/redis-cluster/7003路径下

image

发现 logfile 没有指定日志文件路径,于是修改为:

image

保存后再次重启,发现可以成功启动Redis了:

image

原因分析:

在 redis.conf 配置文件中,如果不指定 logfile 参数的路径,Redis 的行为将取决于 daemonize 配置项的设置:
1. 非守护进程模式(daemonize no):如果 Redis 不以守护进程模式运行,日志将输出到标准输出(stdout),即控制台。
2. 守护进程模式(daemonize yes):当 Redis 以守护进程模式运行时,如果没有指定 logfile的路径,日志可能会被重定向到 /dev/null,这意味着日志将被发送到系统日志服务。
因此,为了有效地管理和查看 Redis 日志,建议指定一个具体的日志文件路径。

 
 
posted @ 2025-08-05 10:19  LuoTengteng  阅读(80)  评论(0)    收藏  举报