톰캣(tomcat)을 윈도 서비스(Windows Service)에 등록하고 설정 변경하기

 

개요

윈도용 톰캣 7을 다운받으면 안에 tomcat7.exe 와 tomcat7w.exe 파일이 있다. (톰캣6 은 tomcat6.exe, tomcat6w.exe)

각각의 용도는 다음과 같다.

  • tomcat7.exe - Tomcat7 을 NT 서비스로 구동하기 위한 서비스 어플리케이션(service application)으로 다음과 같은 옵션이 있다.
    • //IS//serviceName - 서비스 설치
    • //US//serviceName - 서비스 파라미터 갱신
    • //DS//serviceName - 서비스 삭제
    • //SS// Stop the service
    • //RS// Run the service. Called only from ServiceManager
    • //TS// Run the service as console application
  • tomcat7w.exe - 톰캣 서비스의 설정을 변경하고 모니터링하기 위한 GUI 어플리케이션으로 다음과 같은 명령행 옵션이 있다.
    • //ES//serviceName - 서비스 설정을 변경한다. serviceName 을 생략할 경우 tomcat7 을 찾는다. 다음과 같이 실행할 경우 서비스명이 tomcat7 인 것을 찾아서 아래아 같은 윈도를 띄우게 된다.

      tomcat7w //ES//tomcat7


       

    • //MS//serviceName - serviceName 을 모니터링한다. 트레이 아이콘에 추가된다.

 

서비스 등록/삭제

tomcat7.exe 를 통해 서비스 등록/삭제할 수도 있지만 배포판에 포함된 service.bat 를 이용하는게 간편하다.

기본 사용법은 다음과 같다.

service.bat install/remove [service_name]  [/user username]

설치

tomcat7_service 라는 이름으로 설치를 한다. 제대로 구동하려면 사전에 JAVA_HOME 환경 변수가 설정되어 있어야 한다.

service.bat install tomcat7_service 

명령행에서 세밀하게 서비스 등록을 하려면 다음 옵션을 사용할 수 있다. (tomcat은  d:\devel\apache-tomcat-7.0.55 에 설치됐다고 가정) 

 

Installing services
tomcat7.exe //IS//Tomcat7 --DisplayName="Apache Tomcat 7" --Install="D:\devel\apache-tomcat-7.0.55\bin\tomcat7.exe" --Jvm=auto --StartMode=jvm --StopMode=jvm --StartClass=org.apache.catalina.startup.Bootstrap --StartParams=start -StopClass=org.apache.catalina.startup.Bootstrap --StopParams=stop
-Dcatalina.home=d:\devel\apache-tomcat-7.0.55
-Dcatalina.base=d:\devel\apache-tomcat-7.0.55
-Djava.endorsed.dirs=d:\devel\apache-tomcat-7.0.55\endorsed
-Djava.io.tmpdir=d:\devel\apache-tomcat-7.0.55\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=d:\devel\apache-tomcat-7.0.55\conf\logging.properties

삭제

tomcat7_service 라는 이름의 서비스를 삭제한다.
service.bat remove tomcat7_service 

 

설정 변경

Command line parameters

서비스로 구동시 넘겨줄 파라미터는 대쉬(-) 두개로 시작한다. 만약 플러스(+) 두개로 시작한다면 예전 파라미터에 추가하겠다는 의미이다. 만약 환경 변수명이 커맨드 파라미터명과 같지만 PR_ 접두사가 붙어있다면 선행되어 처리된다. 

만약 set PR_CLASSPATH=xx.jar 로 환경 변수를 설정했다면 커맨드 파라미터 --Classpath=xx.jar 와 동일한 의미이다.

 

파라미터기본값의미
--Description Service name description (maximum 1024 characters)
--DisplayNameServiceNameService display name
--Installprocrun.exe //RS//ServiceNameInstall 서비스
--StartupmanualService startup mode can be either auto or manual
--JavaHomeJAVA_HOMESet a different JAVA_HOME than defined by JAVA_HOME environment variable
--JvmMs Initial memory pool size in MB. (Not used in exe mode.)
--JvmMx Maximum memory pool size in MB. (Not used in exe mode.)
--JvmSs Thread stack size in KB. (Not used in exe mode.)
--StartModejvm(service.bat 설정)One of jvmJava or exe. The modes are:
   


톰캣 파라미터 변경

윈도 서비스로 구동할 경우 톰캣 구동 옵션은 catalina.bat 에 설정해도 적용이 되지 않으므로 파라미터를 이용하여 서비스 옵션에 직접 추가해야 한다.

서비스 옵션 변경이므로 //US// 를 사용해야 한다.

 

JVM 의 초기 메모리와 최대 메모리 설정

최대 메모리를 2G 로 설정
tomcat7 //US//tomcat7 --JvmMs 512m --JvmMx 2048m

 

JVM 파라미터 추가

JVM 파라미터 추가
tomcat7 //US//tomcat7 ++JvmOptions="-Djira.jelly.on=true"

 

JVM 의 MaxPermSize 를 256M 으로 설정

tomcat7 //US//tomcat7 ++JvmOptions="-XX:MaxPermSize=256m"

 

만약 GUI 환경에서 설정을 변경하려면 tomcat7w.exe 를 사용하면 된다.

최대 메모리를 2G 로 설정
tomcat7w.exe //ES//tomcat7

JVM 의 메모리 사이즈 변경 옵션은 Java 탭에서 찾을 수 있다.



Ref