我在Debian上安装了Redis 3.0.6。有一个/etc/init.d/redis文件,它在系统启动时启动Redis服务器,或者我可以手动调用它来启动/停止服务器。问题是这个脚本是以根用户的身份运行的。
我有一个redis用户和组,我想让Redis在其中运行。但是我不知道怎么做(我还没有找到一个选项来让Redis在启动后切换用户ID )。在我的配置文件中使用
unixsocket /home/redis/redis.sock
unixsocketperm 770当然,redis.sock是由root拥有的。
drwxr-xr-x 2 redis redis 4096 Jan 18 03:34 bin
drwxr-xr-x 2 redis redis 4096 Jan 18 03:55 data
-rw-r--r-- 1 redis redis 41638 Jan 18 03:52 redis.conf
-rw-r--r-- 1 redis redis 16348 Jan 18 03:55 redis.log
-rw-r--r-- 1 root root 5 Jan 18 03:55 redis.pid
srwxrwx--- 1 root root 0 Jan 18 03:55 redis.sock这个过程也是如此。
root 7913 0.1 0.1 38016 1976 ? Ssl 03:55 0:00 /home/redis/bin/redis-server *:6379最终,我有一个git用户,这个用户也在redis组中,因此最终应该可以访问redis.sock。(这是手动部署GitLab CE)。
我怎样才能这样配置Redis服务器?
发布于 2016-01-18 05:10:49
在启动服务期间更新/etc/init.d以使用sudo (第33行):
sudo -u redis $EXEC $CONF您可能需要清理旧文件(在/var/lib中)或将其权限重置为redis。
https://stackoverflow.com/questions/34847122
复制相似问题