redis开机自启

  • 操作系统:centos7
  • 确保redis.conf中daemonize为yes,确保守护进程开启。

1.创建redis脚本

vim /etc/init.d/redis.sh

#!/bin/sh
#redis  服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,关闭的优先级是10。
# chkconfig: 2345 10 90  
# 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-cli客户端启动脚本的位置
REDIS_CLI=/usr/local/redis/bin/redis-cli   #redis-cli客户端启动脚本的位置

PIDFILE=/var/run/redis.pid   #要与redis.conf配置文件中的配置相同
CONF="/usr/local/redis/etc/redis.conf"  #redis.conf所在的位置
AUTH=123456   #redis-cli 认证密码,脚本关闭是需要用到

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  -a $AUTH  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

chmod a+x chmod a+x /etc/init.d/redis.sh

2.创建自启服务

vim /etc/systemd/system/redis.service

#unit 本身的说明,以及与其他相依 daemon 的设置,包括在什么服务之后才启动此 unit 之类的设置值;
[Unit]
Description=redis.service
After=network.target    #在network.target 启动之后执行
[Service]
Type=forking    #以后台守护进程方式运行
PIDFile=/var/run/redis.pid   #要注意的是,systemctl执行脚本需要确认其解释器  #!/bin/sh
ExecStart=/etc/init.d/redis start   #systemctl start redis
ExecReload=/etc/init.d/redis restart 
ExecStop=/etc/init.d/redis stop
PrivateTmp=true     #分配临时独立空间

[Install]#这个项目就是将此 unit 安装到哪个 target 里面去的意思!
WantedBy=multi-user.target

3.设置开机服务自启

systemctl daemon-reload 重新加载systemctl配置文件
systemctl stop redis 停止运行中的redis
systemctl start redis 运行redis
systemctl enable redis 设置开机自启

  • 1.systemctl start redis如Process 报错 (code=exited, status=203/EXEC)
    第一步创建redis脚本完之后一定要 指定文件为可执行文件,并且文件中需要加上其解释器(#!/bin/sh) chmod a+x chmod a+x /etc/init.d/redis.sh
  • 2.创建redis.service时去掉中文

systemctl详情

你可能感兴趣的:(redis开机自启)