设置redis服务开机自启动

时间:2021-09-28 00:36:16

今天周一,一大早来公司开完会,就听到开发的同学说本地项目起不来了,叫我查下原因。想了下,他们本地项目只跟我们公司的一台内网服务器有关,那台服务器他们要用到的呢,也就只有mysql和redis这两个服务,于是就去查了下这两个服务的状态。mysql是启动状态的,redis是关闭的,想起来了,周末园区说会全体断电一次,好像是要搞什么演练,想必这肯定是这台服务器断电关机了,而redis没有设置开机自启动(mysql之前设置过,而redis当时忘记了。。。。。),于是就先把问题先解决吧,然后写个脚本设置redis开机自启动。

1、在写脚本前设置下redis允许在后台启动,修改redis.conf文件,把daemonize no改成daemonize yes

设置redis服务开机自启动

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:
#description: Start and Stop redis REDISPORT=
EXEC=/usr/local/src/redis-3.0./src/redis-server
CLIEXEC=/usr/local/src/redis-3.0./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
done
echo "Redis stopped"
fi
;;
restart)
"$0" stop
sleep
"$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 //查看所有注册的脚本文件