• Redis启停脚本


    1.概述

    解决部分老系统,如Centos6上启停Redis服务的问题。

    2.Redis自带脚本

    • Redis安装包下载
    wget http://download.redis.io/releases/redis-6.2.9.tar.gz
    
    • 脚本存放在解压后安装包路径下utils目录中,redis_init_script与redis_init_script.tpl两个文件
    [root@centos utils]# pwd
    # 请将/home/redis-6.2.9替换为安装包解压路径
    /home/redis-6.2.9/utils
    # 查看服务管理脚本
    [root@centos utils]# ll redis_init_script*
    -rwxrwxr-x 1 root root 1352 519 14:12 redis_init_script
    -rwxrwxr-x 1 root root 1047 519 14:12 redis_init_script.tpl
    

    3.Redis安装

    参见我另一篇笔记: Redis单例部署

    4.修改Redis默认脚本

    vim /etc/init.d/redis-server
    
    #!/bin/sh
    #
    # Simple Redis init.d script conceived to work on Linux systems
    # as it does use of the /proc filesystem.
    
    ### BEGIN INIT INFO
    # Provides:     redis_6379
    # Default-Start:        2 3 4 5
    # Default-Stop:         0 1 6
    # Short-Description:    Redis data structure server
    # Description:          Redis data structure server. See https://redis.io
    ### END INIT INFO
    
    # 服务主目录
    REDIS_HOME=/usr/local/redis
    # 服务端口
    REDISPORT=6379
    # 服务端程序路径
    EXEC=${REDIS_HOME}/bin/redis-server
    # 客户端程序路径
    CLIEXEC=${REDIS_HOME}/bin/redis-cli
    
    # PID文件路径,注意与redis.conf配置文件中保持一致
    PIDFILE=/var/run/redis/redis_${REDISPORT}.pid
    # 配置文件路径
    CONF="${REDIS_HOME}/redis.conf"
    
    # 定义运行服务的普通用户,需要提前创建
    USER="redis"
    #if [ `whoami` != "${USER}" ]; then
    #        exec su - "${USER}"
    #fi
    # 定义sudo命令
    CMD="/usr/bin/sudo -u ${USER}"
    
    
    case "$1" in
        # 启动服务
        start)
            if [ -f $PIDFILE ]
            then
                    echo "$PIDFILE exists, process is already running or crashed"
            else
                    echo "Starting Redis server..."
                    # 使用普通用户启动服务
                    exec $CMD $EXEC $CONF
            fi
            ;;
        # 停止服务
        stop)
            if [ ! -f $PIDFILE ]
            then
                    echo "$PIDFILE does not exist, process is not running"
            else
                    PID=$(cat $PIDFILE)
                    echo "Stopping ..."
                    #$CLIEXEC -p $REDISPORT shutdown
                    # 因为Redis设置了密码,所以修改停止服务命令。
                    /bin/kill -s TERM ${PID}
                    while [ -x /proc/${PID} ]
                    do
                        echo "Waiting for Redis to shutdown ..."
                        sleep 1
                    done
                    /bin/rm -rf $PIDFILE
                    echo "Redis stopped"
            fi
            ;;
        # 服务状态
        status)
            if [ ! -f $PIDFILE ]
            then
                echo 'Redis is not running'
            else
                PID=$(cat $PIDFILE)
                echo "Redis is running ($PID)"
            fi
            ;;
        # 重启服务
        restart)
            $0 stop
            sleep 1
            $0 start
            ;;
        *)
            echo "Please use start or stop as first argument"
            ;;
    esac
    

    5.注册为Service

    检验脚本/etc/init.d/redis-server

    • 确保程序和配置文件路径正确
    • 确保端口是redis服务监听端口(会使用pid文件,pid文件与redis.conf中配置需一致)。

    脚本添加执行权限

    chmod +x /etc/init.d/redis-server
    

    添加到redis-server服务

    chkconfig --add redis-server
    

    启用redis-server服务

    # chkconfig redis-server on
    

    6.功能验证

    启动服务

    [root@centos utils]# service redis-server start
    Starting Redis server...
    
    # 服务使用普通用户(redis)运行
    [root@centos init.d]# ps -ef | grep 6379 | grep -v grep
    redis    12530     1  0 18:54 ?        00:00:00 /usr/local/redis/bin/redis-server *:6379     
    

    服务状态

    [root@centos utils]# service redis-server status
    Redis is running (11304)
    
    [root@centos utils]# netstat -nltp | grep 6379 | grep -v grep
    tcp        0      0 0.0.0.0:6379               0.0.0.0:*                   LISTEN      11304/redis-server  
    tcp        0      0 :::6379                    :::*                        LISTEN      11304/redis-server  
    

    重启服务

    [root@centos utils]# service redis-server restart
    Stopping ...
    Waiting for Redis to shutdown ...
    Redis stopped
    Starting Redis server...
    

    停止服务

    [root@centos utils]# service redis-server stop
    Stopping ...
    Waiting for Redis to shutdown ...
    Redis stopped
    
  • 相关阅读:
    linux x64 下的redis安装
    关于我的家乡网页设计主题题材——梧州14页HTML+CSS网页
    利用Proxifier配置多级代理
    2022-11-27
    16万亿Web3蓝图落地新加坡
    计算机毕业设计(附源码)python幼儿健康管理系统
    获得淘宝商品详情 API 返回值说明
    探索CSS中的宽度设置:width: 100% 与 width: auto 的区别
    Istio实战(六)- Istio 部署
    一场江湖恩怨从「聚合数据」说起——第五篇
  • 原文地址:https://blog.csdn.net/shijin741231/article/details/139632998