Windows环境 jar包注册服务脚本收藏

WinSN

  • WinSW 是一个可执行的二进制文件,可用于将自定义进程包装并作为 Windows 服务进行管理。
  • WinSW 由配置文件管理:
    • <service>
      	<id>jenkins</id>
      	<name>Jenkins</name>
      	<description>This service runs Jenkins continuous integration system.</description>
      	<env name="JENKINS_HOME" value="%BASE%"/>
      	<executable>java</executable>
      	<arguments>-Xrs -Xmx256m -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>
      	<log mode="roll"></log>
      </service>
      
  • 重命名WinSW.exe二进制文件也接受以下命令:
    • install将服务安装到 Windows Service Controller。 此命令需要安装指南中描述的一些初步步骤。
    • uninstall卸载服务。与上述操作相反。
    • start以启动服务。该服务必须已安装。
    • stop停止服务。
    • stopwait停止服务并等待它实际停止。
    • restart重新启动服务。如果服务当前未运行,则此命令的作用类似于 。start
    • status以检查服务的当前状态。

脚本收藏

将需要注册为服务的jar包放在相同名字的目录下, 也可以修改获取文件夹名的脚本为获取jar包名, 但是这个目录下可能会存在多个版本的jar包, 所以我就取了文件夹的名字, 文件夹名字就是最终要运行jar包的名字

dir.bat (获取脚本所在文件夹目录名)

@echo off
for %%I in (.) do set "projectName=%%~nxI"
echo %projectName%

install.bat (注册服务脚本)

@echo off
rem 获取当前目录名字,通过dir.bat脚本
for /f "delims=" %%i in ('dir.bat') do set projectName=%%i

rem 创建临时文件,xml配置文件
(
  echo ^<service^>
  echo   ^<id^>%projectName%^</id^>
  echo   ^<name^>%projectName%^</name^>
  echo   ^<description^>This service is %projectName%^</description^>
  echo   ^<executable^>java^</executable^>
  echo   ^<arguments^>-Dfile.encoding=UTF8 -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=1024m -Xms256m -Xmx256m -Xmn64m -Xss256k -jar %projectName%.jar^</arguments^>
  rem 日志路径 当前目录下的logs文件夹中
  echo   ^<logpath^>%%BASE%%^\logs^</logpath^>
  rem 日志模式,滚动模式,最大10MB,最多8个文件的模式
  echo   ^<logmode^>rotate^</logmode^>
  rem echo   ^<log mode="rotate"^>
  rem echo     ^<pattern^>%projectName%^</pattern^>
  rem echo   ^</log^>
  echo ^</service^>
) > temp.txt

rem 重定向到目标文件
type temp.txt > %projectName%.xml

rem 删除临时文件
del temp.txt

rem 复制下载好的winSW文件 jar包名
copy operation.exe %projectName%.exe

rem 注册服务
%projectName%.exe install

rem 创建临时文件
(
  echo tail -n 200 -f %projectName%.out.log
) > temp.txt
rem 重定向到日志查看脚本
type temp.txt > %projectName%.sh
rem 删除临时文件
del temp.txt
rem 移动日志脚本到日志目录
move %projectName%.sh logs\

start.bat (项目启动)

@echo off
for /f "delims=" %%i in ('dir.bat') do set projectName=%%i
%projectName%.exe start

stop.bat (项目停止)

@echo off
for /f "delims=" %%i in ('dir.bat') do set projectName=%%i
%projectName%.exe stop

uninstall.bat (服务卸载)

@echo off

for /f "delims=" %%i in ('dir.bat') do set projectName=%%i

rem 停止服务
%projectName%.exe stop

rem 卸载服务
%projectName%.exe uninstall

rem 清理文件
move %projectName%.xml logs
del %projectName%.exe

set CURRENT_DATE=%DATE%
set CURRENT_TIME=%TIME%
set DATE_TIME=%CURRENT_DATE:~3,4%%CURRENT_DATE:~8,2%%CURRENT_DATE:~11,2%%CURRENT_TIME:~0,2%%CURRENT_TIME:~3,2%%CURRENT_TIME:~6,2%
set DATE_TIME=%DATE_TIME: =0%

rename logs %DATE_TIME%

使用

  • 需要注册的jar包为 blade-crm.jar 所在的目录就为 blade-crm
  • 我将winSW.exe 文件重命名为了 operation.exe
  • 将5个脚本复制到 blade-crm目录下
    在这里插入图片描述
  • install.bat
    • 创建配置文件 blade-crm.xml
    • 注册服务
    • 创建log.sh文件到logs目录下
  • uninstall.bat
    • 停止服务
    • 卸载服务
    • 清理文件, 整理日志
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值