redis開機自啟

  • 操作系統(tǒng):centos7
  • 確保redis.conf中daemonize為yes,確保守護進程開啟。

1.創(chuàng)建redis腳本

vim /etc/init.d/redis.sh

#!/bin/sh
#redis  服務(wù)必須在運行級2,3,4,5下被啟動或關(guān)閉,啟動的優(yōu)先級是90,關(guān)閉的優(yōu)先級是10。
# chkconfig: 2345 10 90  
# description: Start and Stop redis   

PATH=/usr/local/bin:/sbin:/usr/bin:/bin  
export PATH 
REDISPORT=6379 #端口號,根據(jù)實際開放需求修改
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 認證密碼,腳本關(guān)閉是需要用到

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.創(chuàng)建自啟服務(wù)

vim /etc/systemd/system/redis.service

#unit 本身的說明,以及與其他相依 daemon 的設(shè)置,包括在什么服務(wù)之后才啟動此 unit 之類的設(shè)置值;
[Unit]
Description=redis.service
After=network.target    #在network.target 啟動之后執(zhí)行
[Service]
Type=forking    #以后臺守護進程方式運行
PIDFile=/var/run/redis.pid   #要注意的是,systemctl執(zhí)行腳本需要確認其解釋器  #!/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.設(shè)置開機服務(wù)自啟

systemctl daemon-reload 重新加載systemctl配置文件
systemctl stop redis 停止運行中的redis
systemctl start redis 運行redis
systemctl enable redis 設(shè)置開機自啟

  • 1.systemctl start redis如Process 報錯 (code=exited, status=203/EXEC)
    第一步創(chuàng)建redis腳本完之后一定要 指定文件為可執(zhí)行文件,并且文件中需要加上其解釋器(#!/bin/sh) chmod a+x chmod a+x /etc/init.d/redis.sh
  • 2.創(chuàng)建redis.service時去掉中文

systemctl詳情

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容