关于Redis以普通用户运行的补充与总结

在线修改redis-server

前言

https://wangtingwei.info/?p=540这篇文章中我介绍了为什么要用redis用户来运行?redis编译不支持添加普通用户?以及redis如何以普通用户运行?但是如果是已经运行的redis服务我们应该怎么修改?其实大致思路是相同的,但是还是有些注意事项需要说明,下面我们一起来学习下。

思路

因为我们做的redis架构是一主两从三个哨兵,这样的架构做了冗余,允许我们滚动更新配置(停掉一个redis服务,进行配置更改,服务正常后,再修改另一个),原来是root用户,现在要更新为普通用户运行。你需要考虑如下几点:

1.pid路径需要更改,默认是/var/run/xxx.pid ,但是/var/run普通用户没权限创建pid ,我们必须在里面新建一个redis目录,然后chown 授权

2.redis 数据目录(我这里是/usr/local/redis/data/)由于之前aof还有rdb文件都是root权限,现在必须通过chown 重新授权,否则重新启动会重新加载aof 会提示权限不够而引起启动失败,redis服务安装目录(我这里是/usr/local/redis/)的权限问题。需要chown 授权,默认都是root用户才有权限。日志目录var/log/redis/xx.log最好也授权。

3.service 服务 需要添加 User=redis  Group=redis   (redis是我提前创建的普通用户,无家目录,不能登陆系统),service 配置文件的pid路径要和配置文件的一致,这里都加了redis目录:/var/run/redis/redis_6379.pid

4.systemclt daemon-reload 重启服务即可

排错

通过service服务起不来服务,但是直接指定配置文件可以启动,二者有什么差别呢?主要有以下几点

1.service文件配置有问题:可能路径写错,单词字母不对,pid 路径和配置文件的不一致。

2.权限问题:由于用了普通用户执行,可能某些服务的重要路径或者需要加载的数据文件没有授权,导致服务启动失败

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Loading...