使用windows服务启动jar包并创建和设置自启bat文件后台定时监控服务状态

一、测试环境

1. 硬件环境

  1. 处理器(CPU):i7-7700HQ

  2. 显卡(GPU):GTX1050

2. 操作系统

  1. 版本:Windows 11 专业版 22H2

  2. 操作系统版本:22621.1778

2.软件环境

  1. JDK:jdk-8u371

二、详细流程

  • 默认文件夹:C:\test
  • 默认服务名称:TestService
  • 默认jar包名称:test-service-1.0.0.jar

1. 下载exe可执行文件

1) 将以下网址输入浏览器下载windows的可执行文件WinSW.exe

https://github.com/winsw/winsw/releases

2) 下载流程如下图所示:

使用windows服务启动jar包并创建和设置自启bat文件后台定时监控服务状态_第1张图片

3) 将文件名称修改为:TestService.exe

2. 创建exe的配置文件

1)创建名称为TestService.xml的文件并将以下内容添加到上述文件中。

需修改的xml节点为:id, name, description, env, executable, arguments


  
  
  
  TestService
  
  
  Test Service (powered by WinSW)
  
  
  Test service description.
  
  
  
  
  
  
  javaw
 
  
  -Xms256m -Xmx256m -jar "C:\test\test-service-1.0.0.jar"  --xx
 
  Automatic

3. 创建服务的相关bat文件

1) 创建安装服务的bat文件 创建名称为TestServiceInstall.bat的文件并将以下内容添加到文件中。

TestService.exe install

2) 创建卸载服务的bat文件 创建名称为TestServiceUninstall.bat的文件并将以下内容添加到文件中。

TestService.exe uninstall

3.) 创建定时监控服务状态的bat文件 创建名称为TestServiceAutoStart.bat的文件并将以下内容添加到文件中。

需修改的参数为:secs, srvname

@echo off
rem 自动调用管理员权限并在后台运行脚本
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c "^&chr(34)^&"%~0"^&chr(34)^&" ::","%cd%","runas",0)(window.close)&&exit
​
rem 定义循环间隔时间和监测的服务:
set secs=60
set srvname="TestService"
​
​
echo.
echo ========================================
echo ==         查询计算机服务的状态,     ==
echo ==     每间隔%secs%秒种进行一次查询,     ==
echo ==     如发现其停止,则立即启动。     ==
echo ========================================
echo.
echo 此脚本监测的服务是:%srvname%
echo.
​
​
if %srvname%. == . goto end
​
​
:chkit
set svrst=0
for /F "tokens=1* delims= " %%a in ('net start') do if /I "%%a %%b" == %srvname% set svrst=1
if %svrst% == 0 net start %srvname%
set svrst=
rem 下面的命令用于延时,否则可能会导致cpu单个核心满载。
ping -n %secs% 127.0.0.1 > nul
goto chkit
​
​
:end

4. 安装服务

双击TestServiceInstall.bat的文件自动安装服务。

5. 开机自动启动定时监控服务

此步骤是为了防止计算机操作人员有意或无意关闭正在运行的java程序导致线上系统受影响。

1)按下键盘上的Win+R键启动运行窗口。

2) 在输入框内输入shell:common startup打开windows自启文件夹。

3) 将test文件夹下的TestServiceUninstall.bat文件复制到自启文件夹下,这样即完成了监控服务的开机自启。

6. 卸载服务

当系统需要下线时,双击TestServiceUninstall.bat的文件自动卸载服务。

你可能感兴趣的:(windows,java,jar,batch,windows)