Redis在CentOS下开机自启
创建脚本文件
新建文件
vim /etc/init.d/redis
编写脚本
#!/bin/sh # chkconfig: 2345 10 90 # description: Start and Stop redis # 端口号 REDISPORT=6379 # redis-server路径 EXEC=/usr/local/redis/redis-5.0.8/src/redis-server # redis-cli路径 CLIEXEC=/usr/local/redis/redis-5.0.8/src/redis-cli # 进程号文件路径,启动之后才有 PIDFILE=/var/run/redis_${REDISPORT}.pid # redis.conf路径 CONF="/usr/local/redis/redis-5.0.8/redis.conf" case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." $EXEC $CONF & fi exit 1 ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $CLIEXEC -p $REDISPORT shutdown while [ -x /proc/${PID} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi exit 1 ;; restart) "$0" stop sleep 3 "$0" start exit 1 ;; *) echo "Please use start/stop/restart as first argument" >&2 exit 1 ;; esac
其中以下部分需要根据安装路径自行修改
# 端口号 REDISPORT=6379 # redis-server路径 EXEC=/usr/local/redis/redis-5.0.8/src/redis-server # redis-cli路径 CLIEXEC=/usr/local/redis/redis-5.0.8/src/redis-cli # 进程号文件路径,启动之后才有 PIDFILE=/var/run/redis_${REDISPORT}.pid # redis.conf路径 CONF="/usr/local/redis/redis-5.0.8/redis.conf"
配置脚本文件
设置脚本文件为可执行
chmod 777 /etc/init.d/redis
将脚本文件增加到开机启动项中
chkconfig --add /etc/init.d/redis chkconfig redis on
密码问题
用 requirepass 命令修改的密码,在重启redis之后密码会丢失。这里建议通过修改redis.conf文件中的以下属性来修改,把“foobared”修改成你想要的密码。
注意:保存之前要把“#”号删掉,不然这就是个注释。
# requirepass foobared
设置密码之后,原始的脚本文件会报错,主要是stop脚本命令会报如下错误:
(error) NOAUTH Authentication required.
修改脚本文件如下
把这一句 $CLIEXEC -p $REDISPORT shutdown 改成这一句 $CLIEXEC -a "你的密码" shutdown
原因就是执行shutdown命令是需要密码的。