Redis开机自启动脚本
虽然使用命令行可以对redis进行各种操作,但启动等,但是还是不太方便,此处介绍在Linux下安装Redis后,如何设置其启动自启动。
1. CentOS6.x&RedHat6.x配置Redis引导自启动
1.1创建Redis的管理脚本
首先,在系统的/etc/init.d/目录下创建redis文件:
<span style="color:#000000"><span style="color:#334356"><span style="color:#334356"><span style="color:#1bc1a1"><img class="clippy" alt="复制到剪贴板" src="https://help.finereport.com/js/clipboard/clippy.png" data-cke-saved-src="https://help.finereport.com/js/clipboard/clippy.png" /><code>vi /etc/init.d/redis
</code></span></span></span></span>
点击i键,在脚本中添加如下内容:
<span style="color:#000000"><span style="color:#334356"><span style="color:#334356"><span style="color:#1bc1a1"><img class="clippy" alt="复制到剪贴板" src="https://help.finereport.com/js/clipboard/clippy.png" data-cke-saved-src="https://help.finereport.com/js/clipboard/clippy.png" /><code>#!<span style="color:#009926">/bin/</span>sh
# chkconfig: <span style="color:teal">2345</span> <span style="color:teal">10</span> <span style="color:teal">90</span>
# description: Start and Stop redis
REDISPORT=<span style="color:teal">7379</span>
EXEC=<span style="color:#009926">/usr/</span>redis/redis-<span style="color:teal">5.0</span><span style="color:teal">.4</span>/src/redis-server
CLIEXEC=<span style="color:#009926">/usr/</span>redis/redis-<span style="color:teal">5.0</span><span style="color:teal">.4</span>/src/redis-cli
PIDFILE=<span style="color:#009926">/var/</span>run/redis_${REDISPORT}.pid
CONF=<span style="color:#dd1144">"/usr/redis/redis-5.0.4/redis.conf"</span>
<span style="color:teal">case</span> <span style="color:#dd1144">"$1"</span> <span style="color:teal">in</span>
start)
<span style="color:teal">if</span> [ -f $PIDFILE ]
then
echo <span style="color:#dd1144">"$PIDFILE exists, process is already running or crashed"</span>
<span style="color:teal">else</span>
echo <span style="color:#dd1144">"Starting Redis server..."</span>
$EXEC $CONF &
fi
;;
stop)
<span style="color:teal">if</span> [ ! -f $PIDFILE ]
then
echo <span style="color:#dd1144">"$PIDFILE does not exist, process is not running"</span>
<span style="color:teal">else</span>
PID=$(cat $PIDFILE)
echo <span style="color:#dd1144">"Stopping ..."</span>
$CLIEXEC -p $REDISPORT shutdown
<span style="color:teal">while</span> [ -x /proc/${PID} ]
<span style="color:teal">do</span>
echo <span style="color:#dd1144">"Waiting for Redis to shutdown ..."</span>
sleep <span style="color:teal">1</span>
done
echo <span style="color:#dd1144">"Redis stopped"</span>
fi
;;
restart)
<span style="color:#dd1144">"$0"</span> stop
sleep <span style="color:teal">3</span>
<span style="color:#dd1144">"$0"</span> start
;;
*)
echo <span style="color:#dd1144">"Please use start or stop or restart as first argument"</span>
;;
esac</code></span></span></span></span>
显示代码
注意,对于自定义编译安装的Redis(帮助文档中提供的即是一种方式),需要根据安装路径修改脚本中这几项配置:
<span style="color:#000000"><span style="color:#334356"><span style="color:#334356"><span style="color:#1bc1a1"><img class="clippy" alt="复制到剪贴板" src="https://help.finereport.com/js/clipboard/clippy.png" data-cke-saved-src="https://help.finereport.com/js/clipboard/clippy.png" /><code>EDISPORT=<span style="color:teal">7379</span> ====>默认为<span style="color:teal">7379</span>,若有调整请修改为实际的端口号
EXEC=<span style="color:#009926">/usr/</span>redis/redis-<span style="color:teal">5.0</span><span style="color:teal">.4</span>/src/redis-server ====>Redis 服务的启动路径
CLIEXEC=<span style="color:#009926">/usr/</span>redis/redis-<span style="color:teal">5.0</span><span style="color:teal">.4</span>/src/redis-cli ====>Redis 客户端的启动路径
CONF=<span style="color:#dd1144">"/usr/redis/redis-5.0.4/redis.conf"</span> ====>配置文件路径</code></span></span></span></span>
保存脚本文件后设置文件的执行权限:
<span style="color:#000000"><span style="color:#334356"><span style="color:#334356"><span style="color:#1bc1a1"><img class="clippy" alt="复制到剪贴板" src="https://help.finereport.com/js/clipboard/clippy.png" data-cke-saved-src="https://help.finereport.com/js/clipboard/clippy.png" /><code>chmod a+x /etc/init.d/redis
</code></span></span></span></span>
然后,就可以通过该脚本对Redis服务进行管理了:
<span style="color:#000000"><span style="color:#334356"><span style="color:#334356"><span style="color:#1bc1a1"><img class="clippy" alt="复制到剪贴板" src="https://help.finereport.com/js/clipboard/clippy.png" data-cke-saved-src="https://help.finereport.com/js/clipboard/clippy.png" /><code>/etc/init.d/redis start
/etc/init.d/redis stop
</code></span></span></span></span>
1.2使用chkconfig设置启动自启动
上面的步骤完成了用脚本管理Redis服务的功能,接下来我们就可以使用chkconfig来设置Redis开机启动了。
先将Redis服务加入chkconfig管理列表:
<span style="color:#000000"><span style="color:#334356"><span style="color:#334356"><span style="color:#1bc1a1"><img class="clippy" alt="复制到剪贴板" src="https://help.finereport.com/js/clipboard/clippy.png" data-cke-saved-src="https://help.finereport.com/js/clipboard/clippy.png" /><code>chkconfig --add /etc/init.d/redis
</code></span></span></span></span>
配置完以后,就可以使用以下命令设置开机自启动等操作了:
<span style="color:#000000"><span style="color:#334356"><span style="color:#334356"><span style="color:#1bc1a1"><img class="clippy" alt="复制到剪贴板" src="https://help.finereport.com/js/clipboard/clippy.png" data-cke-saved-src="https://help.finereport.com/js/clipboard/clippy.png" /><code>chkconfig redis on #设置开机自启动
chkconfig redis off #停止开机自启动
service redis start #启动redis服务
service redis stop #停止redis服务
service redis restart #重启redis服务
</code></span></span></span></span>
2. CentOS7.x&RedHat7.x配置redis开机自启动
2.1创建Redis的管理脚本
首先,在系统的/ lib / systemd / system /目录下创建redis.service文件:
<span style="color:#000000"><span style="color:#334356"><span style="color:#334356"><span style="color:#1bc1a1"><img class="clippy" alt="复制到剪贴板" src="https://help.finereport.com/js/clipboard/clippy.png" data-cke-saved-src="https://help.finereport.com/js/clipboard/clippy.png" /><code>vi /lib/systemd/system/redis.service
</code></span></span></span></span>
点击i键,在脚本中添加如下内容:
<span style="color:#000000"><span style="color:#334356"><span style="color:#334356"><span style="color:#1bc1a1"><img class="clippy" alt="复制到剪贴板" src="https://help.finereport.com/js/clipboard/clippy.png" data-cke-saved-src="https://help.finereport.com/js/clipboard/clippy.png" /><code>[Unit]
Description=The redis-server Process Manager
After=syslog.target network.target
[Service]
Type=forking
PIDFile=<span style="color:#009926">/var/</span>run/redis_7379.pid
ExecStart=<span style="color:#009926">/usr/</span>redis/redis-<span style="color:teal">5.0</span><span style="color:teal">.4</span>/src/redis-server /usr/redis/redis-<span style="color:teal">5.0</span><span style="color:teal">.4</span>/redis.conf
ExecReload=<span style="color:#009926">/bin/</span>kill -USR2 $MAINPID
ExecStop=<span style="color:#009926">/bin/</span>kill -SIGINT $MAINPID
[Install]
WantedBy=multi-user.target</code></span></span></span></span>
注意,对于自定义编译安装的Redis(帮助文档中提供的即是一种方式),需要根据实际路径修改脚本中的Redis启动路径“ / usr / redis / sbin / redis”。
保存脚本文件后设置文件的执行权限:
<span style="color:#000000"><span style="color:#334356"><span style="color:#334356"><span style="color:#1bc1a1"><img class="clippy" alt="复制到剪贴板" src="https://help.finereport.com/js/clipboard/clippy.png" data-cke-saved-src="https://help.finereport.com/js/clipboard/clippy.png" /><code>chmod a+x /lib/systemd/system/redis.service
</code></span></span></span></span>
2.2使用systemctl设置开机自启动
配置完脚本以后,就可以使用以下命令设置开机自启动等操作了:
<span style="color:#000000"><span style="color:#334356"><span style="color:#334356"><span style="color:#1bc1a1"><img class="clippy" alt="复制到剪贴板" src="https://help.finereport.com/js/clipboard/clippy.png" data-cke-saved-src="https://help.finereport.com/js/clipboard/clippy.png" /><code>systemctl enable redis.service #设置开机自启动
systemctl disable redis.service #停止开机自启动
systemctl start redis.service #启动 Redis 服务
systemctl stop redis.service #停止服务
systemctl status redis.service #查看服务当前状态
systemctl list-units --type=service #查看所有已启动的服务</code></span></span></span></span>