Grails 项目打包作为Windows 服务启动

本文档可实现目的:

  1.  grails 项目打包好的war包作为Windows 服务在系统 下运行
  2.  部署完成后支持默认设置开机自启
  3.  支持32位和64位JDK
  4. 实现一键安装服务
  5. 支持一键卸载服务
  6. 支持一键重启服务
  7. 支持一键停止服务
  8. 支持yml外置配置文件修改环境变量

系统环境:

正文:

一:创建服务安装脚本

方案一:(此脚本使用独立JDK,不需要为系统配置JDK环境变量)

1. 新建txt文件,文件名称 “服务安装”

2. 将.txt后缀修改为.bat

3. 粘贴如下脚本内容

@echo off
rem 本脚本负责安装grails-service-0.1.war为系统服务,脚本依赖Procrun
rem 运行脚本前请务必将procrun.exe文件放入和脚本同一个目录下

rem 设置jdk 所在目录,推荐将JDK免安装包与此安装脚本放置到同一目录下
SET JAVA_HOME=".\JDK8-32\jre"
: install_service
if "%JAVA_HOME%" == "" (
    echo 找不到JRE,未拷贝JDK-32文件包到当前文件所在目录,请拷贝。。。。。
    goto failed
) else (
    "%JAVA_HOME%\bin\java" -version 2>&1 | find /i "build 1.8.0" > nul 2>&1
    if %ERRORLEVEL% NEQ 0 (
        echo 必须使用java8环境,请检查所使用JDK版本。
        goto failed
    )
)

if exist "%JAVA_HOME%\jre" (
    set "JRE_HOME=%JAVA_HOME%\jre"
) else (
    set "JRE_HOME=%JAVA_HOME%"
)

rem Try to use the server jvm
set "JVM=%JRE_HOME%\bin\server\jvm.dll"
if exist "%JVM%" goto foundJvm
rem Try to use the client jvm
set "JVM=%JRE_HOME%\bin\client\jvm.dll"
if exist "%JVM%" goto foundJvm
echo Warning: Neither 'server' nor 'client' jvm.dll was found at JRE_HOME.
set JVM=auto

:foundJvm
cd /d %~dp0
set "SERVICE_PATH=%cd%"
echo 使用JAVA_HOME变量值: %JAVA_HOME%
prunsrv.exe install grails-service ^
    --Description "grails-server 测试服务,服务自动重启哦" ^
    --Startup auto ^
    --StartMode jvm ^
    --StopMode jvm ^
    --Jvm "%JVM%" ^
    --Classpath "%SERVICE_PATH%\grails-service-0.1.war" ^
    --StartClass "org.springframework.boot.loader.WarLauncher" ^
    --StopClass "java.lang.System"^
    --LogPath  "./"^
    --StopMethod "exit"^
if %ERRORLEVEL% NEQ 0 goto failed

sc failure "grails-service"  actions= restart/5000/restart/5000/restart/5000 reset= 86400
if %ERRORLEVEL% NEQ 0 (
    echo 设置服务自动重启失败,请确保使用管理员身份运行脚本
    goto :failed
)

:start_service
echo 尝试启动service...
prunsrv.exe start grails-service

if %ERRORLEVEL% NEQ
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值