設置redis服務開機自啟動


今天周一,一大早來公司開完會,就聽到開發的同學說本地項目起不來了,叫我查下原因。想了下,他們本地項目只跟我們公司的一台內網服務器有關,那台服務器他們要用到的呢,也就只有mysql和redis這兩個服務,於是就去查了下這兩個服務的狀態。mysql是啟動狀態的,redis是關閉的,想起來了,周末園區說會全體斷電一次,好像是要搞什么演練,想必這肯定是這台服務器斷電關機了,而redis沒有設置開機自啟動(mysql之前設置過,而redis當時忘記了。。。。。),於是就先把問題先解決吧,然后寫個腳本設置redis開機自啟動。

1、在寫腳本前設置下redis允許在后台啟動,修改redis.conf文件,把daemonize no改成daemonize yes

2、開始編寫腳本

#vim /etc/init.d/redis  --創建腳本文件

這里我的redis安裝路徑是/usr/local/src/redis-3.0.3,端口為8530,然后redis.conf文件在/etc下面,你們根據自己的實際情況修改就行(這個腳本可以根據redis自帶的啟動腳本進行修改,它默認的路徑是在$redis/utils/redis_init_script,$redis是redis的安裝路徑)

#!/bin/bash
#chkconfig: 22345 10 90
#description: Start and Stop redis

REDISPORT=8530
EXEC=/usr/local/src/redis-3.0.3/src/redis-server
CLIEXEC=/usr/local/src/redis-3.0.3/src/redis-cli

PIDFILE=/var/run/redis.pid
CONF="/etc/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
        ;;
    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
        ;;
    restart)
        "$0" stop
        sleep 3
        "$0" start
        ;;
    *)
        echo "Please use start or stop or restart as first argument"
        ;;
esac

3、寫完記得修改文件權限

#chmod +x /etc/init.d/redis

4、把腳本添加到系統服務列表

#chkconfig --add redis
#chkconfig redis on
#chkconfig --list   //查看所有注冊的腳本文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM