下载的zip版的tomcat要注册为windows系统服务就要运行bin/service.bat
加载系统服务为
service install tomcat6
卸载系统服务为
service remove tomcat6
可以对service.bat文件做一些其他修改,使tomcat更加能满足我们各种不同需求时的要求
1. 如果让tomcat编译jsp文件,就在PR_CLASSPATH中加入J2SDK的tools.jar
修改前:
set PR_CLASSPATH=%CATALINA_HOME%\bin\bootstrap.jar
修改后:
set PR_CLASSPATH=%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\bin\bootstrap.jar
2.要使用一个特定的JVM,就要修改jvm的参数;要使注册的windows服务的启动方式为自动,增加--Startup Automatic,这个是比较常用的;要用定制的server.xml配置文件并且传递多个参数给StartClass,要修改StartParams的值,各个值之间用分号分隔:
修改前:
"%EXECUTABLE%" //IS//%SERVICE_NAME% --Jvm auto
--StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap
--StartParams start --StopParams stop
修改后: 添加--Startup Automatic参数到最后
"%EXECUTABLE%" //IS//%SERVICE_NAME% --Jvm "%JAVA_HOME%\jre\bin\server\jvm.dll"
--StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap
--StartParams "-config;%CUSTOM_SERVERXML_FILE%;-nonaming;start" --StopParams stop
--Startup Automatic
3. 指定最大和最小的内存限制,要增加jvm的初始参数
修改前:
"%EXECUTABLE%" //US//%SERVICE_NAME% --JvmOptions
"-Dcatalina.base=%CATALINA_BASE%;-Dcatalina.home=%CATALINA_HOME%;-Djava.endorsed.dirs=%CATALINA_HOME%\common\endorsed"
--StartMode jvm --StopMode jvm
修改后:
设定虚拟内存大小和堆大小和内存回收策略,注意参数间使用分号间开,
添加-Xms1024M;-Xmx1024M;-XX:NewRatio=3;-XX:PermSize=200M;-XX:MaxPermSize=299M;
"%EXECUTABLE%" //US//%SERVICE_NAME% --JvmOptions
"-Xms1024M;-Xmx1024M;-XX:NewRatio=3;-XX:PermSize=200M;-XX:MaxPermSize=299M;-Dcatalina.base=%CATALINA_BASE%;-Dcatalina.home=%CATALINA_HOME%;-Djava.endorsed.dirs=%CATALINA_HOME%\common\endorsed"
--StartMode jvm --StopMode jvm
4.有时注册windows服务成功后,但是启动服务时显示“发生服务特定错误: 0.”
就是因为jvm没有指定,修改Jvm auto为Jvm "%JAVA_HOME%\jre\bin\server\jvm.dll"后重新注册windows服务就可以启动了。
加载系统服务为
service install tomcat6
卸载系统服务为
service remove tomcat6
可以对service.bat文件做一些其他修改,使tomcat更加能满足我们各种不同需求时的要求
1. 如果让tomcat编译jsp文件,就在PR_CLASSPATH中加入J2SDK的tools.jar
修改前:
set PR_CLASSPATH=%CATALINA_HOME%\bin\bootstrap.jar
修改后:
set PR_CLASSPATH=%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\bin\bootstrap.jar
2.要使用一个特定的JVM,就要修改jvm的参数;要使注册的windows服务的启动方式为自动,增加--Startup Automatic,这个是比较常用的;要用定制的server.xml配置文件并且传递多个参数给StartClass,要修改StartParams的值,各个值之间用分号分隔:
修改前:
"%EXECUTABLE%" //IS//%SERVICE_NAME% --Jvm auto
--StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap
--StartParams start --StopParams stop
修改后: 添加--Startup Automatic参数到最后
"%EXECUTABLE%" //IS//%SERVICE_NAME% --Jvm "%JAVA_HOME%\jre\bin\server\jvm.dll"
--StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap
--StartParams "-config;%CUSTOM_SERVERXML_FILE%;-nonaming;start" --StopParams stop
--Startup Automatic
3. 指定最大和最小的内存限制,要增加jvm的初始参数
修改前:
"%EXECUTABLE%" //US//%SERVICE_NAME% --JvmOptions
"-Dcatalina.base=%CATALINA_BASE%;-Dcatalina.home=%CATALINA_HOME%;-Djava.endorsed.dirs=%CATALINA_HOME%\common\endorsed"
--StartMode jvm --StopMode jvm
修改后:
设定虚拟内存大小和堆大小和内存回收策略,注意参数间使用分号间开,
添加-Xms1024M;-Xmx1024M;-XX:NewRatio=3;-XX:PermSize=200M;-XX:MaxPermSize=299M;
"%EXECUTABLE%" //US//%SERVICE_NAME% --JvmOptions
"-Xms1024M;-Xmx1024M;-XX:NewRatio=3;-XX:PermSize=200M;-XX:MaxPermSize=299M;-Dcatalina.base=%CATALINA_BASE%;-Dcatalina.home=%CATALINA_HOME%;-Djava.endorsed.dirs=%CATALINA_HOME%\common\endorsed"
--StartMode jvm --StopMode jvm
4.有时注册windows服务成功后,但是启动服务时显示“发生服务特定错误: 0.”
就是因为jvm没有指定,修改Jvm auto为Jvm "%JAVA_HOME%\jre\bin\server\jvm.dll"后重新注册windows服务就可以启动了。
- @echo off
- if "%OS%" == "Windows_NT" setlocal
- rem ---------------------------------------------------------------------------
- rem NT Service Install/Uninstall script
- rem
- rem Options
- rem install Install the service using Tomcat5 as service name.
- rem Service is installed using default settings.
- rem remove Remove the service from the System.
- rem
- rem name (optional) If the second argument is present it is considered
- rem to be new service name
- rem
- rem $Id: service.bat 467182 2006-10-23 23:47:06Z markt $
- rem ---------------------------------------------------------------------------
- rem Guess CATALINA_HOME if not defined
- set CURRENT_DIR=%cd%
- if not "%CATALINA_HOME%" == "" goto gotHome
- set CATALINA_HOME=%cd%
- if exist "%CATALINA_HOME%\bin\tomcat6.exe" goto okHome
- rem CD to the upper dir
- cd ..
- set CATALINA_HOME=%cd%
- :gotHome
- if exist "%CATALINA_HOME%\bin\tomcat6.exe" goto okHome
- echo The tomcat.exe was not found...
- echo The CATALINA_HOME environment variable is not defined correctly.
- echo This environment variable is needed to run this program
- goto end
- rem Make sure prerequisite environment variables are set
- if not "%JAVA_HOME%" == "" goto okHome
- echo The JAVA_HOME environment variable is not defined
- echo This environment variable is needed to run this program
- goto end
- :okHome
- if not "%CATALINA_BASE%" == "" goto gotBase
- set CATALINA_BASE=%CATALINA_HOME%
- :gotBase
- set EXECUTABLE=%CATALINA_HOME%\bin\tomcat6.exe
- rem Set default Service name
- set SERVICE_NAME=Tomcat6
- set PR_DISPLAYNAME=Apache Tomcat
- if "%1" == "" goto displayUsage
- if "%2" == "" goto setServiceName
- set SERVICE_NAME=%2
- set PR_DISPLAYNAME=Apache Tomcat %2
- :setServiceName
- if %1 == install goto doInstall
- if %1 == remove goto doRemove
- if %1 == uninstall goto doRemove
- echo Unknown parameter "%1"
- :displayUsage
- echo.
- echo Usage: service.bat install/remove [service_name]
- goto end
- :doRemove
- rem Remove the service
- "%EXECUTABLE%" //DS//%SERVICE_NAME%
- echo The service '%SERVICE_NAME%' has been removed
- goto end
- :doInstall
- rem Install the service
- echo Installing the service '%SERVICE_NAME%' ...
- echo Using CATALINA_HOME: %CATALINA_HOME%
- echo Using CATALINA_BASE: %CATALINA_BASE%
- echo Using JAVA_HOME: %JAVA_HOME%
- rem Use the environment variables as an example
- rem Each command line option is prefixed with PR_
- set PR_DESCRIPTION=Apache Tomcat Server - http://jakarta.apache.org/tomcat
- set PR_INSTALL=%EXECUTABLE%
- set PR_LOGPATH=%CATALINA_BASE%\logs
- set PR_CLASSPATH=%CATALINA_HOME%\bin\bootstrap.jar
- rem Set the server jvm from JAVA_HOME
- set PR_JVM=%JAVA_HOME%\jre\bin\server\jvm.dll
- if exist "%PR_JVM%" goto foundJvm
- rem Set the client jvm from JAVA_HOME
- set PR_JVM=%JAVA_HOME%\jre\bin\client\jvm.dll
- if exist "%PR_JVM%" goto foundJvm
- set PR_JVM=auto
- :foundJvm
- echo Using JVM: %PR_JVM%
- rem 设定启动方式为自启动
- "%EXECUTABLE%" //IS//%SERVICE_NAME% --StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap --StartParams start --StopParams stop --Startup Automatic
- if not errorlevel 1 goto installed
- echo Failed installing '%SERVICE_NAME%' service
- goto end
- :installed
- rem Clear the environment variables. They are not needed any more.
- set PR_DISPLAYNAME=
- set PR_DESCRIPTION=
- set PR_INSTALL=
- set PR_LOGPATH=
- set PR_CLASSPATH=
- set PR_JVM=
- rem Set extra parameters
- rem 设定虚拟内存
- "%EXECUTABLE%" //US//%SERVICE_NAME% --JvmOptions "-Xms512M;-Xmx512M;-XX:NewRatio=3;-XX:PermSize=100M;-XX:MaxPermSize=100M;-Dcatalina.base=%CATALINA_BASE%;-Dcatalina.home=%CATALINA_HOME%;-Djava.endorsed.dirs=%CATALINA_HOME%\endorsed" --StartMode jvm --StopMode jvm
- rem More extra parameters
- set PR_LOGPATH=%CATALINA_BASE%\logs
- set PR_STDOUTPUT=auto
- set PR_STDERROR=auto
- "%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp" --JvmMs 128 --JvmMx 256
- echo The service '%SERVICE_NAME%' has been installed.
- :end
- cd %CURRENT_DIR%