Redis状态监控并自动重启脚本
解决了什么问题?
Redis自动监控如果停止就直接重启,此方式也可以解决PHP无法通过exec函数执行redis重启不生效问题。
脚本和执行
shell脚本如下,基础脚本可自定义各种使用场景。原理就是监听6379端口是否被占用,如果redis停止那么端口中的进程数就是0,这时候直接重启Redis即可。
#!/bin/bash while true do count=`netstat -tunple | grep 6379 | wc -l` if [ 1 -gt $count ]; then echo "Redis has stopped, restart..." /etc/init.d/redis restart sleep 1 else # echo "Redis Run in system" sleep 1 fi done
后台运行此脚本,(这里监听的redis重启指令是:/etc/init.d/redis start (宝塔默认))
nohup ./restart_redis.sh 2>&1 &
评论