设置redis服务开机自启动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置redis服务开机自启动相关的知识,希望对你有一定的参考价值。

参考技术A 1、在写脚本前设置下redis允许在后台启动,修改redis.conf文件,把daemonize no改成daemonize yes

2、开始编写脚本

我的redis安装目录为 /usr/local/redis ,redis配置文件为 /usr/local/redis/redis.conf ,redis的pid文件为 /var/run/redis_6379.pid

编写完后还需要赋予它可执行权限,否则报如下错误:

赋予它可执行权限: chmod +x /etc/init.d/redis

Redis服务器设置密码后,使用 /etc/init.d/redis restart 会出现以下信息:

出现这样的错误信息,redis 这时是没有停止服务的。
可以使用ps -ef | grep redis 查进程号 然后kill 掉,如果在deamon下还需要去删除pid文件,有点繁琐。
解决办法:

用redis-cli 密码登陆(redis-cli -a password)就OK了。
再用ps -ef | grep redis 可以看到redis进程已经正常退出。

修改redis服务脚本:
vim /etc/init.d/redis
将 $CLIEXEC -p $REDISPORT shutdown 改成 $CLIEXEC -a "password" -p $REDISPORT shutdown 就可以了

把脚本添加到系统服务列表

redis开机自动服务脚本

 

1.设置redis.conf中daemonize为yes,确保守护进程开启。

2.编写开机自启动脚本

基本原理为: 

系统开机启动时会去加载/etc/init.d/下面的脚本,通常而言每个脚本文件会自定义实现程序的启动;若想将新的程序开机自启动,只需在该目录下添加一个自定义启动程序的脚本,然后设置相应规则即可。 

如在这里我们在/etc/init.d/下新建一个 redis 的脚本,开机启动时会去加载执行该脚本。

 

 

# chkconfig: 2345 10 90 
#redis服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,关闭的优先级是10。
# description: Start and Stop redis  
 
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
export PATH 
REDISPORT=6379 #端口号,这是默认的,如果你安装的时候不是默认端口号,则需要修改
EXEC=/usr/local/redis/bin/redis-server #redis-server启动脚本的位置,你如果忘了可以用find或whereis找到  
REDIS_CLI=/usr/redisbin/redis-cli #redis-cli客户端启动脚本的位置,你如果忘了可以用find或whereis找到  
 
PIDFILE=/run/redis.pid  #这个也可以用find或whereis找到
CONF="/usr/local/redis/etc/redis.conf" #redis.conf配置文件的位置,你如果忘了可以用find或whereis找到
AUTH="1234"
 
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 
        if [ "$?"="0" ]  
        then 
            echo "Redis is running..."
        fi 
        ;;  
    stop)  
        if [ ! -f $PIDFILE ]  
        then 
            echo "$PIDFILE exists, process is not running."
        else
            PID=$(cat $PIDFILE)  
            echo "Stopping..."
            $REDIS_CLI -p $REDISPORT SHUTDOWN  
            sleep 2 
            while [ -x $PIDFILE ]  
            do
                echo "Waiting for Redis to shutdown..."
                sleep 1 
            done 
            echo "Redis stopped"
        fi 
        ;;  
    restart|force-reload)  
        ${0} stop  
        ${0} start  
        ;;  
    *)  
        echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2 
        exit 1 
esac

写完后保存退出

设置可执行权限:

1
chmod 755 redis

启动测试:

1
/etc/init.d/redis start

启动成功会提示如下信息:

1
2
Starting Redis server...
Redis is running...

使用redis-cli测试:

1
2
3
4
5
6
[[email protected] ~]# /usr/local/redis/bin/redis-cli
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> get foo
"bar"
127.0.0.1:6379> exit

设置开机自启动:

1
chkconfig redis on

关机重启测试:

1
reboot

开机完之后可以用 redis-cli 测试,或者用 ps -ef | grep redis 看看redis 是否在运行中

 

以上是关于设置redis服务开机自启动的主要内容,如果未能解决你的问题,请参考以下文章

CentOS7设置Redis开机启动

使用Redis启动脚本设置开机自启动

redis开机自动服务脚本

Redis设置密码及开机自启动

Linux服务开机自启动三种方式,你觉得哪种最优雅?

[CentOS7]redis设置开机启动,设置密码