Windows服务器运行spring boot的jar包会自动关闭
作者:互联网
背景介绍
1.阿里云服务器
2.Windows操作系统
3.Oracle数据库
4.java -jar运行jar包
5.以上不是重点
6.程序员克星–360安全卫士
问题场景
服务器上使用java -jar运行的jar包,隔断时间就会自动关闭。使用bat批处理文件运行,也一样。甚至于写了个监控jar包进程的bat批处理文件(每10秒检测该jar包进程是否存在,若不存在,则执行启动jar包的bat),还是没用,甚至于连该监控的cmd窗口都被关闭。
解决方案
偶然的计划看到有博主说是360会自动关闭。正好在服务器上苦思冥想查看报错日志的时候,360弹了个框提示我们的jar包是病毒,-_-||,倒计时30秒,不执行操作就要关闭了。
后来看了下360的拦截记录,我们系统上传的图片很多都被拦截了(都是照片被拦截,导致本地也没有存到)。包括但不限于身份证照片、自拍照、截图等。访问的用户越多,上传的照片越多,拦截频率越大,关闭程序越多。(* ̄︶ ̄)然而因为一些特殊原因,还不能卸载服务器上的360,只能先加入可信程序中。然后还发现360有个云安全计划,会把我们这的(可疑)文件都传到360服务器去(可不可疑也是他说了算对吧)。。
总之卸载360保代码无bug。。不然真是玄学编码。。
监控bat语句
最后附上监控进程的bat,括号内容需要删除,为解释,这两个bat放同级目录
1.运行jar包的语句
title Process monitoring start jmt3-1
#set AppName=jhh3-1.jar(jar包名称)
#set AppPath=D:\jhh3.1\(存放jar包的文件夹绝对路径)
# java -jar %AppPath%%AppName% 2>nul && echo ^>%date:~0,10% %time:~0,8% start jhh3-1 success(替换jar包名称)
java -jar jhh3-1.jar -XX:PermSize=100m -XX:MaxPermSize=500m(替换jar包名称)
exit
2.监控语句
@echo off
set AppName=jhh3-1.jar(jar包名称)
set AppPath=D:\jhh3.1\(存放jar包的文件夹绝对路径)
title Process monitoring jhh3-1
cls
echo.
echo Process monitoring jhh3-1 start...
echo.
:startjc
jps -l |findstr /i %AppName% >nul
if %errorlevel%==0 (
echo ^>%date:~0,10% %time:~0,8% jhh3-1 is running...
)else (
echo ^>%date:~0,10% %time:~0,8% not found jhh3-1
echo ^>%date:~0,10% %time:~0,8% restart jhh3-1
start start.bat(第一个启动jar包的bat文件名)
)
for /l %%i in (1,1,10) do ping -n 1 -w 1000 168.20.0.1>nul
goto startjc
echo on
3.首先运行监控的bat就行了,他检测不到的时候会自动启动jar包。会有两个cmd窗口。若窗口有乱码显示,可能是因为bat语句中的中文或注释。
标签:bat,Windows,boot,包会,jar,echo,start,jhh3,360 来源: https://blog.csdn.net/Amo_lt/article/details/104835083