Redis加入Centos Linux開機啟動

2021-07-23 09:00:50 字數 3697 閱讀 8444

redis加入centos linux開機啟動

網上有很多redis在linux下自動啟動的例子,實現的方式很多,很多都是參考乙個老外流傳出來啟動的例子,其實直接使用是不行,而且有很多地方有一些語法錯誤,這裡就講我實驗過,成功的linux服務chkconfig配置啟動的方法。

# chkconfig: 2345 10 90

# description: start and stop redis

path=/usr/local/bin:/sbin:/usr/bin:/bin

redisport=6379

exec=/opt/redis-2.8.9/src/redis-server

redis_cli=/opt/redis-2.8.9/src/redis-cli

pidfile=/var/run/redis.pid

conf="/etc/redis.conf"

auth="1234"

case "$1"

instart)

if[ -f $pidfile ]

then

echo

"$pidfile exists, process is already running or crashed."

else

echo

"starting redis server..."

$exec

$conf

fiif

[ "$?"="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 ]

doecho

"waiting for redis to shutdown..."

sleep 1

done

echo

"redis stopped"

fi;;

restart|force-reload)

$ stop

$ start

;;*)

echo

"usage: /etc/init.d/redis " >&2

exit 1

esac

# chkconfig: 2345 10 90

表示通過chkconfig配置,在linux中2、3、4、5項中啟動,這個2345代表就linux系統的啟動順序具體,具體內容是:等級0表示:表示關機、等級1表示:單使用者模式、等級2表示:無網路連線的多使用者命令列模式、等級3表示:有網路連線的多使用者命令列模式、等級4表示:不可用、 等級5表示:帶圖形介面的多使用者模式、  等級6表示:重新啟動

# description: start and stop redis

上面一句是描述

path=/usr/local/bin:/sbin:/usr/bin:/bin

path是啟動指令碼使用的shell的搜尋路徑

redisport=6379

redisport指redis埠,啟動redis使用

exec=/opt/redis-2.8.9/src/redis-server

安裝redis後 redis-server的絕對路徑,在啟動redis時使用

redis_cli=/opt/redis-2.8.9/src/redis-cli

redis連線程式絕對路徑,在關閉redis時使用

pidfile=/var/run/redis.pid

redis.conf配置檔案中指定的pid路徑位址,這裡說明一下,在 redis.conf配置檔案中需要將 daemonize這個引數項設定為 yes才會在redis啟動時生成pid檔案,很多新人不知道,沒有生成pid檔案,所以指令碼裡根據pid檔案關閉redis就失敗。

conf="/etc/redis.conf"

redis啟動配置檔案,啟動使用

auth="1234"

如果redis設定了登入密碼,就需要這個配置,具體看下面介紹stop的章節

start)

# 這裡判斷pid檔案是否存在,如果存在,就說明reids啟動中或者執行異常,因為redis啟動後會建立乙個pid檔案,如果正常關閉就會刪除這個pid檔案

if [ -f $pidfile ]

then

echo "$pidfile exists, process is already running or crashed."

else

# 如果不存在pid檔案,就啟動reids,啟動成功後提示 "redis is running..."

echo "starting redis server..."

$exec $conf

fi if [ "$?"="0" ]

then

echo "redis is running..."

fi stop)

# 在關閉reids的時候,如果pid檔案不存在,就判斷redis沒有啟動

if [ ! -f $pidfile ]

then

echo "$pidfile exists, process is not running."

else

## -- 如果存在pid檔案,就獲取pid編號,然後登入到redis中,輸入shutdown 來停止redis服務

pid=$(cat $pidfile)

echo "stopping..."

## -- 本節例子是redis有設定登入密碼的例子,如果沒有登入密碼,下面的命令就去掉-a $auth : $redis_cli -p $redisport  shutdown 

$redis_cli -p $redisport -a $auth  shutdown 

sleep 1

## -- 迴圈判斷pid檔案是否存在,這裡用的是是否可執行,道理一樣,理解為程式是否停止就可以了,直到pid檔案刪除後,就說明redis關閉了。

while [ -x $pidfile ]

do echo "waiting for redis to shutdown..."

sleep 1

done

echo "redis stopped"

fi 最後說幾個可能遇到的問題:

1. 如果啟動指令碼提示某個檔案找不到,說明我們檔案裡的內容有誤:比如 cat $(pidfile)  -x $ 如果這些寫在正常的指令或者字串中正常,但是在判斷表示式中就會出錯

2 .如果找不到pid檔案,需要配置redis.conf配置中的選項開啟。

其實所以問題都是一點點的排查檢查才能最終正確。保持耐心和細心就可以了

如果報  /var/run/redis_6379.pid exists, process is already running or crashed

刪除/var/run/redis_6379.pid檔案即可

Redis加入Centos Linux開機啟動

網上有很多redis在linux下自動啟動的例子,實現的方式很多,很多都是參考乙個老外流傳出來啟動的例子,其實直接使用是不行,而且有很多地方有一些語法錯誤,這裡就講我實驗過,成功的linux服務chkconfig配置啟動的方法。chkconfig 2345 10 90 description sta...

redis服務加入or移除window服務

將redis服務加入到window服務 1 在cmd命令視窗下執行 redis server.exe service install redis.windows.conf loglevel verbose e wrcold520 redis 3.2.100 windows 32 redis redi...

centos 安裝redis並加入系統服務

1.安裝redis wget 解壓 tar zxvf redis 3.2.5.tar.gz 進入目錄 cd redis 3.2.5 編譯 make 測試 make test 安裝tcl yum install tcl 再次測試 make test 安裝 make install 如果之前執行。con...