Apache Tomcat 6.0 - Windows service HOW-TO

| # Apache Tomcat 6.0 |

# Apache Tomcat 6.0 ## Windows service HOW-TO |
NOTICE
This section of the documentation applies to procrun 1.0, and is now obsolete.
Tomcat6 service application
Tomcat6 is a service application for running Tomcat6 as NT service.
Tomcat6w monitor application
> Tomcat6w is a GUI application for monitoring and configuring Tomcat services. The available command line options are:
> //ES// | Edit service configuration | This is the default operation. It is called if the no option is provided but the executable is renamed to servicenameW.exe
> //MS// | Monitor service | Put the icon in the system try
Command line arguments
> Each command line directive is in the form of //XX//ServiceName The available command line options are:
> //TS// | Run the service as console application | This is the default operation. It is called if the no option is provided. The ServiceName is the name of the executable without exe sufix, meaning Tomcat6
> //RS// | Run the service | Called only from ServiceManager
> //SS// | Stop the service |
> //US// | Update service parameters |
> //IS// | Install service |
> //DS// | Delete service | Stops the service if running
Command line parameters
> Each command parameter is prefixed with --. If the command line is prefixed with ++ then it's value will be appended to the existing option. If the environment variable with the same name as command line parameter but prefixed with `PR_` exists it will take precedence. For example:
>     set PR_CLASSPATH=xx.jar
> is equivalent to providing
>     --Classpath=xx.jar
> as command line parameter.
> ParameterName | Default | Description
> --- | --- | ---
> --Description |  | Service name description (maximum 1024 characters)
> --DisplayName | ServiceName | Service display name
> --Install | procrun.exe //RS//ServiceName | Install image
> --Startup | manual | Service startup mode can be either auto or manual
> --DependsOn |  | List of services that this service depend on. Dependent services are separated using either # or ; characters
> --Environment |  | List of environment variables that will be provided to the service in the form key=value. They are separated using either # or ; characters
> --User |  | User account used for running executable. It is used only for StartMode java or exe and enables running applications as service under account without LogonAsService privilege.
> --Password |  | Password for user account set by --User parameter
> --JavaHome | JAVA_HOME | Set a different JAVA_HOME then defined by JAVA_HOME environment variable
> --Jvm | auto | Use either auto or specify the full path to the jvm.dll. You can use the environment variable expansion here.
> --JvmOptions | -Xrs | List of options in the form of -D or -X that will be passed to the JVM. The options are separated using either # or ; characters.
> --Classpath |  | Set the Java classpath
> --JvmMs |  | Initial memory pool size in MB
> --JvmMx |  | Maximum memory pool size in MB
> --JvmSs |  | Thread stack size in KB
> --StartImage |  | Executable that will be run.
> --StartPath |  | Working path for the start image executable.
> --StartClass |  | Class that will be used for startup.
> --StartParams |  | List of parameters that will be passed to either StartImage or StartClass. Parameters are separated using either # or ; character.
> --StartMethod | Main | Method name if differs then main
> --StartMode | executable | Can one of jvm java or exe
| --StopImage |  | Executable that will be run on Stop service signal.
--StopPath |  | Working path for the stop image executable.
--StopClass |  | Class that will be used on Stop service signal.
--StopParams |  | List of parameters that will be passed to either StopImage or StopClass. Parameters are separated using either # or ; character.
--StopMethod | Main | Method name if differs then main
--StopMode | executable | Can one of jvm java or exe
--StopTimeout | No Timeout | Defines the timeout in seconds that procrun waits for service to exit gracefully.
--LogPath | working path | Defines the path for logging
--LogPrefix | jakarta_service | Defines the service log filename
--LogLevel | INFO | Defines the logging level and can be either error, info, warn or debug
--StdOutput |  | Redirected stdout filename
--StdError |  | Redirected stderr filename

Installing services
> The safest way to manually install the service is to use the provided service.bat script.
>     Install the service named 'Tomcat6'
>     C:\> service.bat install
> If using tomcat6.exe, you need to use the //IS// parameter.
>     Install the service named 'Tomcat6'
>     C:\> tomcat6 //IS//Tomcat6 --DisplayName="Apache Tomcat 6" \
>     C:\> --Install="C:\Program Files\Tomcat\bin\tomcat6.exe" --Jvm=auto \
>     C:\> --StartMode=jvm --StopMode=jvm \
>     C:\> --StartClass=org.apache.catalina.startup.Bootstrap --StartParams=start \
>     C:\> --StopClass=org.apache.catalina.startup.Bootstrap --StopParams=stop

Updating services
> To update the service parameters, you need to use the //US// parameter.
>     Update the service named 'Tomcat6
>     C:\> tomcat6 //US//Tomcat6 --Description="Apache Tomcat Server - http://tomcat.apache.org/ " \
>     C:\> --Startup=auto --Classpath=%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\bin\bootstrap.jar

Removing services
> To remove the service, you need to use the //DS// parameter. If the service is running it will be stopped and then deleted.
>     Remove the service named 'Tomcat6'
>     C:\> tomcat6 //DS//Tomcat6

Debugging services
> To run the service in console mode, you need to use the //TS// parameter. The service shutdown can be initiated by pressing CTRL+C or CTRL+BREAK. If you rename the tomcat6.exe to testservice.exe then you can just execute the testservice.exe and this command mode will be executed by default.
>     Run the service named 'Tomcat6' in console mode
>     C:\> tomcat6 //TS//Tomcat6 [additional arguments]
>     Or simply execute:
>     C:\> tomcat6

Copyright © 1999-2008, Apache Software Foundation