linux的redis设置开机自启,问题汇总

7 篇文章 0 订阅

推荐使用docker安装redis,一步到位。
本文介绍我虚拟机安装redis后设置开机自启所遇到的问题。
1.在/etc/rc.d/init.d下添加redis脚本(系统启动会自动执行),并设置为自动启动,命令是:vim /etc/init.d/redis 。

chkconfig: 2345 20 80

description: Start and Stop redis

一开始我以为这只是注释语句,就没添加,结果导致执行chkconfig redis on 的时候一直失败。2345表示系统运行级别是2,3,4或者5时都启动此服务,20,是启动的优先级,80是关闭的优先级,如果启动优先级配置的数太小时如0时,则有可能启动不成功,因为此时可能其依赖的网络服务还没有启动,从而导致自启动失败。

# chkconfig: 2345 20 80
# description: Start and Stop redis


PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
# 自己的redis-server路径(需要自己更改)
EXEC=/usr/local/redis/bin/redis-server
# 自己的redis-cli路径(需要自己更改)
REDIS_CLI=/usr/local/redis/bin/redis-cli                                                                                   

# 存的是redis进程的pid 即 Process ID!
PIDFILE=/var/run/redis.pid
# 自己的redis.conf 路径(需要自己更改)
CONF="/usr/local/redis/etc/redis.conf"                                                                                         
# 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  

2.redis.conf里的bind一开始设置为了虚拟机的ip,也导致自启失败,改回了127.0.0.1后成功了,最后改为了0.0.0.0,方便redis管理器连接;daemonize 设置为yes

参考文章:
脚本内容参考地址

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值