linux設定開機啟動兩個步驟:
- 設定redis.conf中daemonize為yes,確定守護程序開啟。
- 編寫開機自啟動腳本
基本原理為:
系統開機啟動時會去加載/etc/init.d/下面的腳本,通常而言每個腳本檔案會自定義實作程式的啟動;若想将新的程式開機自啟動,隻需在該目錄下添加一個自定義啟動程式的腳本,然後設定相應規則即可。
如在這裡我們在/etc/init.d/下建立一個 redis 的腳本,開機啟動時會去加載執行該腳本。
vim /etc/init.d/redis
腳本内容如下:
#!/bin/sh
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
REDISPORT=6379
REDISROOT=/usr/local/redis/redis-5.0.5/
REDISPATH=/usr/local/redis/redis-5.0.5/src/
EXEC=${REDISPATH}/redis-server
CLIEXEC=${REDISPATH}/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="${REDISROOT}/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
;;
*)
echo "Please use start or stop as first argument"
;;
esac
寫完後儲存退出
設定可執行權限:
chmod 777 /etc/init.d/redis
啟動redis:
/etc/init.d/redis start
執行結束之後用redis-cli 或者 ps aux|grep redis 檢視redis是否成功啟動.
設定開機啟動:
chkconfig redis on
關機重新開機測試:
reboot
重新開機之後再次驗證改動是否生效!