服务监控重启的Shell脚本

服务监控重启的Shell脚本

服务器上的一些服务会由于一些原因导致假死,尽管进程还在,但是服务的接口已经是无法访问了,此时就需要对服务进行重启,所以需要一个脚本来不停的循环监控服务接口的状态码是否为200,Shell脚本如下:

#!/bin/sh

#接口URL地址
URL="http://localhost:8080/swagger-ui.html"
#检测间隔时间,单位秒
SLEEP_SECOND=10
#服务启动时间,单位秒
SERVICE_START_SECOND=60

while true
do
    	process=`curl -I -m 5 -o /dev/null -s -w %{http_code} ${URL}`;
    	time=$(date "+%Y-%m-%d %H:%M:%S")
        if [ "$process" -ne "200" ]; then
                echo "$time 接口访问失败,开始重启...$process"
                #重启操作
                ./stop.sh
                ./start.sh
                sleep ${SERVICE_START_SECOND}
        else
                echo "$time 接口访问正常...$process";
        fi

        sleep ${SLEEP_SECOND};
done

其中start.sh和stop.sh是服务默认的启停脚本。
简单的展示一下服务的启停脚本:
start.sh:

#!/bin/sh
nohup java -jar -Dspring.config.location=application.yml service-name-version.jar -Dfile.encoding=utf-8 -Xms2g -Xmx2g 2>&1 &
echo $! > ./service-name-version.pid

stop.sh

#!/bin/sh
PID=$(cat ./service-name-version.pid)
kill -9 $PID

你可能感兴趣的:(Shell)