今天周一,一大早來公司開完會,就聽到開發的同學說本地項目起不來了,叫我查下原因。想了下,他們本地項目只跟我們公司的一台內網服務器有關,那台服務器他們要用到的呢,也就只有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 //查看所有注冊的腳本文件