Jpom/modules/agent/src/main/bin/Agent.bat

185 lines
5.1 KiB
Batchfile

@REM
@REM The MIT License (MIT)
@REM
@REM Copyright (c) 2019 Code Technology Studio
@REM
@REM Permission is hereby granted, free of charge, to any person obtaining a copy of
@REM this software and associated documentation files (the "Software"), to deal in
@REM the Software without restriction, including without limitation the rights to
@REM use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
@REM the Software, and to permit persons to whom the Software is furnished to do so,
@REM subject to the following conditions:
@REM
@REM The above copyright notice and this permission notice shall be included in all
@REM copies or substantial portions of the Software.
@REM
@REM THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
@REM IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
@REM FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
@REM COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
@REM IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
@REM CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@REM
@echo off
@if not "%ECHO%" == "" echo %ECHO%
setlocal enabledelayedexpansion
set ENV_PATH=.\
if "%OS%" == "Windows_NT" set ENV_PATH=%~dp0%
@REM Set environment variables to prevent some servers from failing to taskkill
set PATH = %PATH%;C:\Windows\system32;C:\Windows;C:\Windows\system32\Wbem
if "%JAVA_HOME%"=="" (
echo please configure [JAVA_HOME] environment variable
PAUSE
EXIT 2
)
set PID_TAG="JPOM_AGENT_APPLICATION"
set conf_dir="%ENV_PATH%/../conf/"
set tmpdir="%ENV_PATH%/../tmp/"
if not exist %tmpdir% md %tmpdir%
@REM see org.springframework.util.StringUtils.cleanPath
@REM set org.springframework.boot.context.config.StandardConfigDataLocationResolver.getResourceLocation
cd %conf_dir%
set conf_dir=%cd%
cd %tmpdir%
set tmpdir=%cd%
cd %ENV_PATH%
set log_dir=%ENV_PATH%\..\logs
set logback_configurationFile=%conf_dir%\logback.xml
set application_conf=%conf_dir%\application.yml
set Lib=%ENV_PATH%\..\lib\
set "RUN_JAR="
set "JAR_MSG="
set agent_log="%log_dir%\agent.log"
set stdout_log="%log_dir%\stdout.log"
set JAVA_MEM_OPTS= -Xms200m -Xmx600m -XX:PermSize=128m -XX:+UseG1GC
set JAVA_OPTS_EXT= -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dapplication.codeset=UTF-8 -Dfile.encoding=UTF-8 -Djava.io.tmpdir="%tmpdir%"
set APP_OPTS= -Djpom.application.tag="%PID_TAG%" -Dlogging.config="%logback_configurationFile%" -Dspring.config.location="%application_conf%"
set JAVA_OPTS= %JAVA_MEM_OPTS% %JAVA_OPTS_EXT% %APP_OPTS%
set ARGS=%*
set JPOM_LOG=%log_dir%
if not exist %log_dir% md %log_dir%
@REM get list jar
call:listDir
if "%1"=="" (
color 0a
TITLE Jpom management system BAT console
echo. ***** Jpom management system BAT console *****
echo. !JAR_MSG!
::*************************************************************************************************************
echo.
echo. [1] start
echo. [2] status
echo. [3] restart
echo. [4] stop
echo. [0] exit 0
echo.
@REM enter
for /l %%i in (1,1,10000) do (
echo. Please enter the selected serial number:
set /p ID=
IF "!ID!"=="1" call:start
IF "!ID!"=="2" call:status
IF "!ID!"=="3" call:restart
IF "!ID!"=="4" call:stop
IF "!ID!"=="0" EXIT
)
)else (
if "%1"=="restart" (
call:restart
)else if "%1"=="start" (
call:start
)else if "%1"=="status" (
call:status
)else if "%1"=="stop" (
call:stop
)else (
call:use
)
)
if "%2" == "upgrade" (
@REM The upgrade ends directly
EXIT 0
)
:end
goto:eof
@REM start
:start
echo Starting..... Closing the window after a successful start does not affect the operation
echo Please check for startup details:%agent_log% or !stdout_log!
start /b javaw %JAVA_OPTS% -jar %Lib%!RUN_JAR! %ARGS% > "!stdout_log!" 2>&1
@REM timeout 3 > NUL
ping 127.0.0.1 -n 3 > nul
goto:eof
@REM get jar
:listDir
if "%RUN_JAR%"=="" (
if exist "%Lib%\run.bin" (
set /P RUN_JAR=<"%Lib%\run.bin"
set JAR_MSG=specify running !RUN_JAR!
)else (
for /f "delims=" %%I in ('dir /B %Lib%') do (
if exist %Lib%%%I if not exist %Lib%%%I\nul (
if "%%~xI" ==".jar" (
if "%RUN_JAR%"=="" (
set "RUN_JAR=%%I"
)
)
)
)
set JAR_MSG=auto running !RUN_JAR!
)
)else (
set JAR_MSG=specify2 running %RUN_JAR%
)
if not exist %Lib%!RUN_JAR! (
echo %JAR_MSG%
echo file not exist %Lib%!RUN_JAR!
PAUSE
EXIT -1
)
@REM stdout_log
if exist "%Lib%\run.bin" (
set /P RUN_LOG=<"%Lib%\run.log"
set stdout_log="%log_dir%\!RUN_LOG!"
)
goto:eof
@REM stop Jpom
:stop
echo "jpom agent stop "
for /f "tokens=1 delims= " %%I in ('jps -v ^| findstr "%PID_TAG%"') do taskkill /F /PID %%I
goto:eof
@REM view Jpom status
:status
echo "jpom agent status "
set pid=
for /f "tokens=1 delims= " %%I in ('jps -v ^| findstr "%PID_TAG%"') do set pid=%%I
echo "running: %pid%"
goto:eof
@REM restart Jpom
:restart
echo Stopping....
call:stop
@REM timeout 3 > NUL
ping 127.0.0.1 -n 3 > nul
echo starting....
call:start %1
goto:eof