Liunx
#! /bin/bash
resptime=`curl -o /dev/null -s -w %{time_total} 127.0.0.1:8085`
resptime1=`curl -o /dev/null -s -w %{time_total} 127.0.0.1:8080`
resptime2=`curl -o /dev/null -s -w %{time_total} 127.0.0.1:8081`
resptime3=`curl -o /dev/null -s -w %{time_total} 127.0.0.1:8082`
echo "监控脚本已启动,启动时间:"`date "+%Y%m%d%H%M%S"` >> /data/restartlog/script.txt
if [[ $resptime > 1 ]] || [[ $resptime == 0.000 ]]; then
#jdk路径,根据你自己的jdk安装位置修改
export PATH=$PATH:/usr/java/jdk1.8.0_301-amd64/bin
#要执行的jar包路径
cd /data2/gxkj/project2
#要执行的jar包名称
APP_NAME=epms-hp-admintest.jar
#找到服务的pid
pid=`ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}' `
#停止服务
kill -9 $pid
#启动服务
nohup java -Dfile.encoding=utf-8 -Dlog4j2.formatMsgNoLookups=true -jar epms-hp-admintest.jar --spring.profiles.active=prod --server.port=8085 >/dev/null 2>&1 &
echo "epms-hp-admintest重启完成,重启时间:"`date "+%Y%m%d%H%M%S"`" pid:"$pid >> /data/restartlog/epms-hp-admintest.txt
fi
if [[ $resptime1 > 1 ]] || [[ $resptime1 == 0.000 ]]; then
#jdk路径,根据你自己的jdk安装位置修改
export PATH=$PATH:/usr/java/jdk1.8.0_301-amd64/bin
#要执行的jar包路径
cd /data3/gxkj/project
#要执行的jar包名称
APP_NAME=epms-hp-admin.jar
#找到服务的pid
pid=`ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}' `
#停止服务
kill -9 $pid
#启动服务
nohup java -Dfile.encoding=utf-8 -Dlog4j2.formatMsgNoLookups=true -jar epms-hp-admin.jar --spring.profiles.active=prod --server.port=8080 >/dev/null 2>&1 &
echo "epms-hp-admin重启完成,重启时间:"`date "+%Y%m%d%H%M%S"`" pid:"$pid >> /data/restartlog/epms-hp-admin.txt
fi
if [[ $resptime2 > 1 ]] || [[ $resptime2 == 0.000 ]]; then
#jdk路径,根据你自己的jdk安装位置修改
export PATH=$PATH:/usr/java/jdk1.8.0_301-amd64/bin
#要执行的jar包路径
cd /data3/gxkj/project2
#要执行的jar包名称
APP_NAME=epms-hp-admin2.jar
#找到服务的pid
pid=`ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}' `
#停止服务
kill -9 $pid
#启动服务
nohup java -Dfile.encoding=utf-8 -Dlog4j2.formatMsgNoLookups=true -jar epms-hp-admin2.jar --spring.profiles.active=prod --server.port=8081 >/dev/null 2>&1 &
echo "epms-hp-admin2重启完成,重启时间:"`date "+%Y%m%d%H%M%S"`" pid:"$pid >> /data/restartlog/epms-hp-admin2.txt
fi
if [[ $resptime3 > 1 ]] || [[ $resptime3 == 0.000 ]]; then
#jdk路径,根据你自己的jdk安装位置修改
export PATH=$PATH:/usr/java/jdk1.8.0_301-amd64/bin
#要执行的jar包路径
cd /data3/gxkj/project3
#要执行的jar包名称
APP_NAME=epms-hp-admin3.jar
#找到服务的pid
pid=`ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}' `
#停止服务
kill -9 $pid
#启动服务
nohup java -Dfile.encoding=utf-8 -Dlog4j2.formatMsgNoLookups=true -jar epms-hp-admin3.jar --spring.profiles.active=prod --server.port=8082 >/dev/null 2>&1 &
echo "epms-hp-admin3重启完成,重启时间:"`date "+%Y%m%d%H%M%S"`" pid:"$pid >> /data/restartlog/epms-hp-admin3.txt
fi
上述脚本配合liunx的定时任务,当服务崩溃可以自动重启
windows 定时重启
@echo off
set port=8112
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (
echo kill the process %%m who use the port
taskkill /pid %%m -t -f
goto start
)
:start
title byyqPro
java -jar C:\Users\Administrator\Desktop\hp1\hp1115\epms-hp-admin.jar
配合windows的定时重启即可