Redis - Redis在CentOS下开机自启

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命令是需要密码的。

 

posted @ 2021-04-27 14:47  Helios_Fz  阅读(158)  评论(0编辑  收藏  举报