舒悦嘎讪胡:tomcat系统服务 - 枫叶 - JavaEye技术网站

来源:百度文库 编辑:九乡新闻网 时间:2024/03/29 01:14:39

tomcat系统服务

下载的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服务就可以启动了。

Java代码
  1. @echo off   
  2. if "%OS%" == "Windows_NT" setlocal   
  3. rem ---------------------------------------------------------------------------   
  4. rem NT Service Install/Uninstall script   
  5. rem   
  6. rem Options   
  7. rem install                Install the service using Tomcat5 as service name.   
  8. rem                        Service is installed using default settings.   
  9. rem remove                 Remove the service from the System.   
  10. rem   
  11. rem name        (optional) If the second argument is present it is considered   
  12. rem                        to be new service name                                              
  13. rem   
  14. rem $Id: service.bat 467182 2006-10-23 23:47:06Z markt $   
  15. rem ---------------------------------------------------------------------------   
  16.   
  17. rem Guess CATALINA_HOME if not defined   
  18. set CURRENT_DIR=%cd%   
  19. if not "%CATALINA_HOME%" == "" goto gotHome   
  20. set CATALINA_HOME=%cd%   
  21. if exist "%CATALINA_HOME%\bin\tomcat6.exe" goto okHome   
  22. rem CD to the upper dir   
  23. cd ..   
  24. set CATALINA_HOME=%cd%   
  25. :gotHome   
  26. if exist "%CATALINA_HOME%\bin\tomcat6.exe" goto okHome   
  27. echo The tomcat.exe was not found...   
  28. echo The CATALINA_HOME environment variable is not defined correctly.   
  29. echo This environment variable is needed to run this program   
  30. goto end   
  31. rem Make sure prerequisite environment variables are set   
  32. if not "%JAVA_HOME%" == "" goto okHome   
  33. echo The JAVA_HOME environment variable is not defined   
  34. echo This environment variable is needed to run this program   
  35. goto end    
  36. :okHome   
  37. if not "%CATALINA_BASE%" == "" goto gotBase   
  38. set CATALINA_BASE=%CATALINA_HOME%   
  39. :gotBase   
  40.     
  41. set EXECUTABLE=%CATALINA_HOME%\bin\tomcat6.exe   
  42.   
  43. rem Set default Service name   
  44. set SERVICE_NAME=Tomcat6   
  45. set PR_DISPLAYNAME=Apache Tomcat   
  46.   
  47. if "%1" == "" goto displayUsage   
  48. if "%2" == "" goto setServiceName   
  49. set SERVICE_NAME=%2  
  50. set PR_DISPLAYNAME=Apache Tomcat %2  
  51. :setServiceName   
  52. if %1 == install goto doInstall   
  53. if %1 == remove goto doRemove   
  54. if %1 == uninstall goto doRemove   
  55. echo Unknown parameter "%1"  
  56. :displayUsage   
  57. echo.   
  58. echo Usage: service.bat install/remove [service_name]   
  59. goto end   
  60.   
  61. :doRemove   
  62. rem Remove the service   
  63. "%EXECUTABLE%" //DS//%SERVICE_NAME%   
  64. echo The service '%SERVICE_NAME%' has been removed   
  65. goto end   
  66.   
  67. :doInstall   
  68. rem Install the service   
  69. echo Installing the service '%SERVICE_NAME%' ...   
  70. echo Using CATALINA_HOME:    %CATALINA_HOME%   
  71. echo Using CATALINA_BASE:    %CATALINA_BASE%   
  72. echo Using JAVA_HOME:        %JAVA_HOME%   
  73.   
  74. rem Use the environment variables as an example   
  75. rem Each command line option is prefixed with PR_   
  76.   
  77. set PR_DESCRIPTION=Apache Tomcat Server - http://jakarta.apache.org/tomcat   
  78. set PR_INSTALL=%EXECUTABLE%   
  79. set PR_LOGPATH=%CATALINA_BASE%\logs   
  80. set PR_CLASSPATH=%CATALINA_HOME%\bin\bootstrap.jar   
  81. rem Set the server jvm from JAVA_HOME   
  82. set PR_JVM=%JAVA_HOME%\jre\bin\server\jvm.dll   
  83. if exist "%PR_JVM%" goto foundJvm   
  84. rem Set the client jvm from JAVA_HOME   
  85. set PR_JVM=%JAVA_HOME%\jre\bin\client\jvm.dll   
  86. if exist "%PR_JVM%" goto foundJvm   
  87. set PR_JVM=auto   
  88. :foundJvm   
  89. echo Using JVM:              %PR_JVM%   
  90. rem 设定启动方式为自启动   
  91. "%EXECUTABLE%" //IS//%SERVICE_NAME% --StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap --StartParams start --StopParams stop --Startup Automatic   
  92. if not errorlevel 1 goto installed   
  93. echo Failed installing '%SERVICE_NAME%' service   
  94. goto end   
  95. :installed   
  96. rem Clear the environment variables. They are not needed any more.   
  97. set PR_DISPLAYNAME=   
  98. set PR_DESCRIPTION=   
  99. set PR_INSTALL=   
  100. set PR_LOGPATH=   
  101. set PR_CLASSPATH=   
  102. set PR_JVM=   
  103. rem Set extra parameters   
  104. rem 设定虚拟内存   
  105. "%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   
  106. rem More extra parameters   
  107. set PR_LOGPATH=%CATALINA_BASE%\logs   
  108. set PR_STDOUTPUT=auto   
  109. set PR_STDERROR=auto   
  110. "%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp" --JvmMs 128 --JvmMx 256   
  111. echo The service '%SERVICE_NAME%' has been installed.   
  112.   
  113. :end   
  114. cd %CURRENT_DIR%