톰캣(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 에 설치됐다고 가정)
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) | |
--DisplayName | ServiceName | Service display name |
--Install | procrun.exe //RS//ServiceName | Install 서비스 |
--Startup | manual | Service startup mode can be either auto or manual |
--JavaHome | JAVA_HOME | Set 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.) | |
--StartMode | jvm(service.bat 설정) | One of jvm, Java or exe. The modes are: |
톰캣 파라미터 변경
윈도 서비스로 구동할 경우 톰캣 구동 옵션은 catalina.bat 에 설정해도 적용이 되지 않으므로 파라미터를 이용하여 서비스 옵션에 직접 추가해야 한다.
서비스 옵션 변경이므로 //US// 를 사용해야 한다.
JVM 의 초기 메모리와 최대 메모리 설정
tomcat7 //US//tomcat7 --JvmMs 512m --JvmMx 2048m
JVM 파라미터 추가
tomcat7 //US//tomcat7 ++JvmOptions="-Djira.jelly.on=true"
JVM 의 MaxPermSize 를 256M 으로 설정
tomcat7 //US//tomcat7 ++JvmOptions="-XX:MaxPermSize=256m"
만약 GUI 환경에서 설정을 변경하려면 tomcat7w.exe 를 사용하면 된다.
tomcat7w.exe //ES//tomcat7
JVM 의 메모리 사이즈 변경 옵션은 Java 탭에서 찾을 수 있다.
Ref