Return to Snippet

Revision: 61449
at December 14, 2012 05:08 by djangofan


Initial Code
@ECHO off
SETLOCAL ENABLEDELAYEDEXPANSION
CLS
:: place this next to the run.bat in your JBoss distro and run it
IF EXIST C:\Users (
  ECHO Current User is '%USERNAME%'
  ECHO INFO: You may need to run this script as 'Administrator' user.
)

::-------------------------------------------------------------------
::  Set TITLE, JBOSS_HOME, and DIRNAME variables
::-------------------------------------------------------------------
SET JBOSS_HOME=%~dp0
FOR /F "delims=\" %%a IN ("%JBOSS_HOME%") DO SET "DIRNAME=%%~nxa"
SET "APPDIR=%DIRNAME%"
SET "JBOSS_HOME=%JBOSS_HOME:bin\=%"
IF %JBOSS_HOME:~-1%==\ SET "JBOSS_HOME=%JBOSS_HOME:~0,-1%"

::-------------------------------------------------------------------
::  Handle script args
::-------------------------------------------------------------------
SET PICK=%~1
SET SERVICENAME=%~2
IF "%SERVICENAME%"=="" SET SERVICENAME=JBOSS
SET TITLETEXT=%SERVICENAME% Service Controller
TITLE %TITLETEXT%

::-------------------------------------------------------------------
::  Parse first script argument for service action
::  If no args are passed then prompt user
::-------------------------------------------------------------------

:MAKECHOICE
ECHO.&ECHO.&ECHO.
IF "%PICK%"=="" (
  ECHO -----------------------------
  ECHO    Options menu:
  ECHO -----------------------------
  ECHO [auto]    Install and start service
  ECHO [install] Install service
  ECHO [start]   Start service
  ECHO [stop]    Stop service
  ECHO [remove]  Remove or uninstall service
  ECHO [console] Run service as console
  ECHO [status]  Query service status
  ECHO.
) ELSE (
  ECHO Running silently since script has arguments.
)

IF "%PICK%"=="" SET /P "PICK=Please enter a service action you want to perform [2]: "

IF EXIST servicename.txt SET /P SERVICENAME=<servicename.txt

IF "%PICK%"=="" (
  ECHO Empty answer. Try Again.
  pause
  GOTO :MAKECHOICE
)
IF "%PICK%"=="auto" (
  IF "%SERVICENAME%"=="" (
    ECHO Choice fails without a second script argument passing service name.
    GOTO :END
  )
  ECHO %SERVICENAME%>>servicename.txt
  SET ACTION=Starting
  SET OPTION=-t
  GOTO :ACTIONSET
)
IF "%PICK%"=="install" (
  IF "%SERVICENAME%"=="" (
    ECHO Choice fails without a second script argument passing service name.
    GOTO :END
  )
  ECHO %SERVICENAME%>>servicename.txt
  SET ACTION=Installing
  SET OPTION=-i
  GOTO :ACTIONSET
)
IF "%PICK%"=="start" (
  SET ACTION=Starting
  SET OPTION=-t
  GOTO :ACTIONSET
)
IF "%PICK%"=="stop" (
  SET ACTION=Stopping
  SET OPTION=-p
  GOTO :ACTIONSET
)
IF "%PICK%"=="remove" (
  SET ACTION=Uninstalling
  SET OPTION=-r
  GOTO :ACTIONSET
)
IF "%PICK%"=="console" (
  SET ACTION=Console
  SET OPTION=-c
  GOTO :ACTIONSET
)
IF "%PICK%"=="status" (
  SET ACTION=Querying
  SET OPTION=-q
  GOTO :ACTIONSET
)
IF "%PICK%"=="X" GOTO :EOF
IF "%PICK%"=="x" GOTO :EOF

:ACTIONSET

SET "WRAPPER_CONFIG_FILE=%JBOSS_HOME%\%APPDIR%\wrapper\wrapper.jboss.conf"

::-------------------------------------------------------------------
::  Set java options for wrapper
::  Change back-slashes to forward-slashes before passing options to the wrapper
::-------------------------------------------------------------------
SET "WRAPPER_ARGS=-Djboss.home=%JBOSS_HOME% -Djboss.dir=%APPDIR% -Dservice.name=%SERVICENAME%"
SET WRAPPER_ARGS=%WRAPPER_ARGS:\=/%

::-------------------------------------------------------------------
::  Info output
::-------------------------------------------------------------------
ECHO.
ECHO -- These variables are set by this script and passed to the service installation:
ECHO     JAVA_HOME=%JAVA_HOME%
ECHO     JBOSS_HOME=%JBOSS_HOME%
ECHO     APPDIR=%APPDIR%
ECHO     WRAPPER_CONFIG_FILE: %WRAPPER_CONFIG_FILE%
ECHO     WRAPPER_ARGS=%WRAPPER_ARGS%
ECHO     SERVICENAME=%SERVICENAME%
ECHO     ACTION=%ACTION%
ECHO     OPTION=%OPTION%
ECHO.
::ECHO -- Before you install this service make sure that you properly configured the
::ECHO   property called "wrapper.ntservice.account" in the wrapper config file.
::ECHO   (It will default to running as the "Local System" user.)
ECHO.

::-------------------------------------------------------------------
::  Install service
::-------------------------------------------------------------------
ECHO.

IF "%PICK%"=="remove" (
  DEL /Q servicename.txt
)
IF "%PICK%"=="auto" (
  :: when auto, perform 1 additional action
  ECHO.
  ECHO Registering service ...
  ECHO "%JAVA_HOME%\bin\java.exe" %WRAPPER_ARGS% -jar %JBOSS_HOME%\%APPDIR%\wrapper\wrapper.jar -i %WRAPPER_CONFIG_FILE%
  CALL "%JAVA_HOME%\bin\java.exe" %WRAPPER_ARGS% -jar %JBOSS_HOME%\%APPDIR%\wrapper\wrapper.jar -i %WRAPPER_CONFIG_FILE%
  CALL :WAIT
)
ECHO.
ECHO %ACTION% service ...
ECHO "%JAVA_HOME%\bin\java.exe" %WRAPPER_ARGS% -jar %JBOSS_HOME%\%APPDIR%\wrapper\wrapper.jar %OPTION% %WRAPPER_CONFIG_FILE%
CALL "%JAVA_HOME%\bin\java.exe" %WRAPPER_ARGS% -jar %JBOSS_HOME%\%APPDIR%\wrapper\wrapper.jar %OPTION% %WRAPPER_CONFIG_FILE%

ECHO.
ECHO.
ECHO %ACTION% service ^"%SERVICENAME%^" is finished.

::-------------------------------------------------------------------
::  Functions
::-------------------------------------------------------------------
:GET_DIR
SET "_TMPDIR=%~dp1"
SET "_TMPDIR=%_TMPDIR:~0,-1%"
EXIT /B 0

:WAIT
PING.exe -n 6 -w 1 127.0.0.1>nul
EXIT /B 0

::-------------------------------------------------------------------
::  End script
::-------------------------------------------------------------------
:END
FOR /l %%a IN (5,-1,1) DO (TITLE JBoss %APPDIR% -- Closing in %%as&PING.exe -n 2 -w 1 127.0.0.1>nul)

Initial URL
https://gist.github.com/4271240

Initial Description
A DOS batch script to handle registering and controlling a JBoss service.

Initial Title
JBoss 5 YAJSW service wrapper script

Initial Tags
service

Initial Language
DOS Batch