手工将tomcat安装为服务及tomcat命令说明

 

最近做了一个项目需要将tomcat和产品功能共同打包进行安装,设计方案是将tomcat用打包工具(我用的是wise)进行拷贝,然后再通过执行相关命令进行服务安装,具体如下(做成批处理文件假设为Installtomcat.bat):

@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,v 1.5.2.2 2004/09/05 07:57:57 mturk Exp $
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\tomcat5.exe" goto okHome
rem CD to the upper dir
cd ..
set CATALINA_HOME=%cd%
:gotHome
if exist "%CATALINA_HOME%\bin\tomcat5.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 "%J***A_HOME%" == "" goto okHome
echo The J***A_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\tomcat5.exe

rem Set default Service name
set SERVICE_NAME=Tomcat5
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
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 J***A_HOME:        %J***A_HOME%

rem Use the environment variables as an exaple
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_HOME%\logs
set PR_CLASSPATH=%J***A_HOME%\lib\tools.jar;%CATALINA_HOME%\bin\bootstrap.jar
rem Set the server jvm from J***A_HOME
set PR_JVM=%J***A_HOME%\jre\bin\server\jvm.dll
if exist "%PR_JVM%" goto foundJvm
rem Set the client jvm from J***A_HOME
set PR_JVM=%J***A_HOME%\jre\bin\client\jvm.dll
if exist "%PR_JVM%" goto foundJvm
set PR_JVM=auto
:foundJvm
echo Using JVM:              %PR_JVM%
"%EXECUTABLE%" //IS//%SERVICE_NAME% --StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap --StartParams start --StopParams stop
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
"%EXECUTABLE%" //US//%SERVICE_NAME% --JvmOptions "-Dcatalina.base=%CATALINA_BASE%;-Dcatalina.home=%CATALINA_HOME%;-Djava.endorsed.dirs=%CATALINA_HOME%\common\endorsed; --StartMode jvm --StopMode jvm
rem More extra parameters
set PR_STDOUTPUT=%CATALINA_HOME%\logs\stdout.log
set PR_STDERROR=%CATALINA_HOME%\logs\stderr.log
"%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%

如果你的系统中配置了启动参数,可通过以上命令进行修改,通过启动tomcat服务进行自动加载。

安装服务:installtomcat.bat install

卸载服务:installtomcat.bat remove

tomcat为5.0,jdk为1.5,前提必须是java可用,测试通过。

附tomcat命令集合说明:

Tomcat5.exe可以把Tomcat加入服务;Tomcat5w.exe可以辅助配置已经添加的服务。

Tomcat5w.exe 监控程序
Tomcat5w是一个监控和配置Tomcat服务的图形界面应用程序。可用的命令行选项如下:

//ES// 编辑服务配置,这是缺省的选项。如果没有提供任何选项,却把tomcat5w.exe重命名为%SERVICE_NAME%.exe运行的话,这个选项就被调用。
//MS// 监控服务,讲图标放置到系统托盘中。

Tomcat5.exe 服务程序
命令行选项
每一个命令行指令都形如//XX//ServiceName

可用的命令行选项如下:

The ServiceName is the name of the executable without exe sufix, meaning Tomcat5
//TS// 控制台应用程序模式运行服务,这是缺省的操作。在没有提供任何选项开关的时候,它被调用。服务名是执行文件没有exe后缀的部分,如Tomat5。
//RS// Run Service的缩写,运行服务,在服务管理器(Sevices.msc)中启动服务的时候被调用。
//SS// Stop Service的缩写,停止服务,在服务管理器中停止服务时被调用。
//US// Update Service的缩写,更新服务参数。
//IS// Install service 的缩写,安装服务 。
//DS// Delete service的缩写,删除服务,如果服务正在运行,首先删除服务。

命令行参数
每一个命令行参数以“--”开头。如果命令行以“++”为前缀,则它的值附加到存在的选项上。如果存在和命令行参数有同样的名字,但是以PR_开头的环境变量,它将被优先使用。例如:
set PR_CLASSPATH=xx.jar
等同于
--Classpath=xx.jar
作为命令行参数。

参数名 缺省值 描述
--Description  服务名描述 (最多1024个字符)
--DisplayName ServiceName 服务显示名称
--Install procrun.exe //RS//ServiceName 安装服务
--Startup  manual Service 服务启动模式,可以是自动或者手动,值分别为:auto和manual
--DependsOn  列举此服务依赖的所有服务. 被依赖的服务用#或者;分隔。
--Environment  列决提供给服务使用的环境变量,形如key=value。多个环境变量之间用#或者;分隔。
--User  运行服务使用的用户账号。 只有在运行于没有“作为服务登录”权限下的账户中使用StartMode java 或者作为服务的exe可运行程序选项的情况下才被使用。
--Password  --User参数中用户的密码
--JavaHome J***A_HOME 定义了J***A_HOME环境变量时,设置一个不同的J***A_HOME环境变量
--Jvm auto 用auto或指定jvm.dll的全路径。这里可以使用环境变量表达式。
--JvmOptions -Xrs  列举形如-D 或 -X 的开关传递给JVM虚拟机。多个选项开关之间用#或者;分隔。
--Classpath  设置Java的ClassPath环境变量。
--JvmMs  设置初始使用的内存池容量,单位为MB。
--JvmMx  设置最大使用的内存池容量,单位为MB。
--JvmSs  线程堆栈容量,单位为KB
--StartImage  要被运行的可执行文件
--StartPath  开始运行可执行文件的工作路径
--StartClass  启动时使用的类
--StartParams  列决要传递给StartImage 或 StartClass的参数。多个参数之间用#或者;分隔。
--StartMethod Main 启动服务调用的方法,如果不是main,这里写上方法名
--StartMode executable 可以是jvm、java或exe 之一
--StopImage  停止服务调用的可执行文件
--StopPath  停止服务执行的文件的工作路径
--StopClass  停止服务调用的类
--StopParams  列决要传递给 StopImage 或 StopClass 的参数。多个参数之间用#或者;分隔。
--StopMethod Main 停止服务调用的方法,如果不是main,这里写上方法名
--StopMode executable 可以是jvm、java或exe 之一
--StopTimeout No Timeout 定义一个服务顺利退出的延时,单位为秒。
--LogPath 定义日志路径
--LogPrefix jakarta_service 定义日志文件名前缀
--LogLevel INFO 定义日志等级,可选值:error, info, warn或debug
--StdOutput  重定向stdout文件名
--StdError  重定向Stderr文件名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值