# The Apache Tomcat 5.5 Servlet/JSP Container

## Windows service HOW-TO

Table of Contents

> - Tomcat5 service application
> - Tomcat5w monitor application
> - Command line arguments
> - Command line parameters
> - Installing services
> - Updating services
> - Removing services
> - Debugging services

Tomcat5 service application

> Tomcat5 is a service application for running Tomcat5 as NT service.

Tomcat5w monitor application

> Tomcat5w 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 suffix, meaning Tomcat5
> //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. If you need to use either the # or ; character within a value then the entire value must be enclosed inside single quotes.
> --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 than 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. Administrator privileges are required to run this script.

> NOTE: On Windows Vista or any other operating system with User Account Control (UAC) you must either disable UAC or right-click on cmd.exe and select "Run as administrator" in order to run this script. If UAC is enabled being logged on with an Administrator account is not sufficient.

>     Install the service named 'Tomcat5'
>     C:\> service.bat install

> If using tomcat5.exe, you need to use the //IS// parameter.

>     Install the service named 'Tomcat5'
>     C:\> tomcat5 //IS//Tomcat5 --DisplayName="Apache Tomcat 5" \
>     C:\> --Install="C:\Program Files\Tomcat\bin\tomcat5.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 'Tomcat5
>     C:\> tomcat5 //US//Tomcat5 --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 'Tomcat5'
>     C:\> tomcat5 //DS//Tomcat5

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 tomcat5.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 'Tomcat5' in console mode
>     C:\> tomcat5 //TS//Tomcat5 [additional arguments]
>     Or simply execute:
>     C:\> tomcat5

Copyright © 1999-2012, Apache Software Foundation