springboot项目监控自动重启(bat版)

目录

一、背景

二、脚本

三、注意事项

1.cmd窗口title

2.管理员关闭cmd窗口问题

3.脚本编码问题

4.常用命令


一、背景

springboot项目偶尔会发生宕机故障,增加一个脚本自动重启springboot项目。

重启逻辑:使用curl命令调用接口,获取状态码,如果状态码不等于200则重启项目。

二、脚本

@echo off

:checkstart
echo start%date%%time%
echo start%time% >> d:\bat_log.txt
set port=8080

echo check api
set url=curl -X POST "http://localhost:8080/poi/demo" -H "dateFormat:yyyy-MM-dd" -H "Request-Origion:SwaggerBootstrapUi" -H "accept:*/*" -H "Content-Type:application/x-www-form-urlencoded;charset=UTF-8" -I -m 10 -o /dev/null -s -w %%{http_code}

set result=-1
::测试接口
for /f "tokens=*" %%i in ('%url%') do (
	echo httpCode:%%i
	echo httpCode:%%i >> d:\bat_log.txt
	set result=%%i
)
echo result:%result%

if %result% equ 200 (
	echo ok
	echo ok >> d:\bat_log.txt
) else (
	echo error
	echo error >> d:\bat_log.txt
	for /f "tokens=5" %%i in ('netstat -ano^|findstr "%port%"') do (
 		echo kill the process %%i who use the port 
		::杀死进程
		taskkill /pid %%i -t -f		
	)
::关闭之前的cmd窗口(需要在启动脚本加上title 8080.bat)
taskkill /fi "WINDOWTITLE eq 8080.bat" /IM cmd.exe /F /t
echo start jar
::启动项目
start cmd /k call D:\jar\start
)
::延时1分钟
ping -n 60 0.0.0.1 >nul 2>nul

goto :checkstart
echo end
pause

三、注意事项

1.cmd窗口title

在start.bat脚本中增加title 8080.bat才能正确的关闭窗口

2.管理员关闭cmd窗口问题

如果是用管理启动的脚本,需要在关闭是增加管理员:  (注意:冒号后面有两个空格,守护脚本也需要用管理员权限启动

taskkill /fi "WINDOWTITLE eq 管理员:  cloudpc-export8088" /IM * /F /t

3.脚本编码问题

文件编码改成ANSI编码正常(中文乱码会引起管理员窗口无法关闭

4.常用命令

taskkill /FI "WINDOWTITLE eq 管理员:  1" /IM * /F /t

tasklist /V /FI "WindowTitle eq 管理员*"
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值