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



