null

Установка Apache Tomcat 7 в качестве службы Windows Server 2012

В одной из своих предыдущих заметок я описал процесс конфигурации сервера приложений GlassFish в качестве службы в ОС Windows Server 2012. В продолжение начатой темы, в этой заметке приведён краткий howto по аналогичной операции с сервером приложений Apache Tomcat (на примере версии 7.0).

Как и в случае GlassFish, в состав бандла Tomcat для Windows входит набор утилит для конфигурации служб в ОС. Если вы скачали Tomcat в виде обычного (кросс-платформенного) zip-архива, то нужных нам утилит в этом архиве не будет, но это не проблема - можно скачать Windows-бандл и "подложить" утилиты оттуда к уже установленному серверу приложений (главное, чтобы версии совпадали).

Инструментарий

Собственно, сам набор состоит из трёх утилит - консольной tomcat7.exe, графической tomcat7w.exe и исполняемого сценария service.bat. Наиболее важная из них - первая утилита, она позволяет создавать, модифицировать и удалять службы ОС. Остальные две утилиты, по сути, просто реализуют упрощённые интерфейсы к tomcat7.exe, позволяя сделать некоторые типовые действия более быстро и удобно. Поэтому сначала поговорим про интерфейс tomcat7.exe.

Утилита tomcat7.exe

Основная утилита Apache Tomcat для конфигурации служб Windows. Синтаксис команды, в общем случае, выглядит примерно так:

C:\\tomcat7\bin\tomcat7.exe \\CMD\\ServiceName [arguments]

Здесь CMD - имя команды (например, "IS"), ServiceName - имя службы (например, "MyWebapp" - мы сами задаём его при создании службы), а arguments - опциональные аргументы. Три наиболее важные команды - IS (Install Service - создать службу), US (Update Service parameters - изменить параметры службы) и DS (Delete Service - удалить службу); полный список команд можно посмотреть в официальном руководстве.

Сценарий service.bat

Типичная команда создания службы с помощью tomcat7.exe обычно выглядит как-то так (пример взят с оф. мануала):

C:\> tomcat7 //IS//Tomcat7 --DisplayName="Apache Tomcat 7" \
C:\> --Install="C:\Program Files\Tomcat\bin\tomcat7.exe" --Jvm=auto \
C:\> --StartMode=jvm --StopMode=jvm \
C:\> --StartClass=org.apache.catalina.startup.Bootstrap --StartParams=start \
C:\> --StopClass=org.apache.catalina.startup.Bootstrap --StopParams=stop

Видим, что 99% этого конфига будет совпадать для всех возможных конфигураций служб. Собственно, чтобы не вбивать этот конфиг каждый раз вручную, разработчики Tomcat любезно предоставляют в наше распоряжение сценарий service.bat, в котором все эти аргументы уже прописаны. К примеру, для создания приведённого выше сервиса с теми же аргументами достаточно просто вызвать service.bat с аргументом install:

C:\> service.bat install

Все остальные аргументы уже прописаны в самом сценарии. Единственный недостаток service.bat - если нам нужно задать какие-либо недефолтные параметры службы (например, лимиты памяти для JVM), сделать это через него не получится - придётся после создания службы вызывать "tomcat7.exe //US//", либо доконфигурировать службу с помощью tomcat7w.exe.

Утилита tomcat7w.exe

Удобная графическая утилита для мониторинга службы и задания параметров её конфигурации. Интерфейс выглядит примерно так:

Утилита Tomcat7w.exe

Можно задать все основные параметры конфигурации, если не хочется связываться с консолью и запускать / останавливать службу, если не хочется связываться со стандартной админкой Windows.

Пример конфигурации службы

Для примера рассмотрим практический пример конфигурации службы на реальной системе. Предположим, что нам нужно создать службу Windows для Tomcat 7, установленного в каталог C:\\MyWebapp, причём работающее под управлением Tomcat приложение достаточно "тяжёлое" - требует 1 Гб хипа и 256 Мб PermGen.

Для начала, запускаем service.bat:

c:\MyWebapp\tomcat\bin>service.bat install MyWebapp
Installing the service 'MyWebapp' ...
Using CATALINA_HOME:    "c:\MyWebapp\tomcat"
Using CATALINA_BASE:    "c:\MyWebapp\tomcat"
Using JAVA_HOME:        "C:\Program Files\Java\jdk1.7.0_45"
Using JRE_HOME:         "C:\Program Files\Java\jdk1.7.0_45\jre"
Using JVM:              "C:\Program Files\Java\jdk1.7.0_45\jre\bin\server\jvm.dl
l"
The service 'MyWebapp' has been installed.

Помним о том, что служба создалась с дефолтными параметрами JVM. Для того, чтобы изменить их на нужные нам, вызываем команду //US утилиты tomcat7.exe:

c:\MyWebapp\tomcat\bin>tomcat7.exe //US//MyWebapp ++JvmOptions=-Xmx1024m;-XX:MaxPermSize=256m

Проверяем, появилаясь ли служба в панели управления:

Служба появилась в панели управления

Пытаемся запустить:

Служба успешно запустилась

Работает!

Коротко о себе:

Работаю ведущим программистом в компании Tune IT и ассистентом кафедры Вычислительной техники в Университете ИТМО .

Занимаюсь проектами, связанными с разработкой разного рода веб-приложений (порталы, CRM-системы, системы электронного документооборота), а также, в рамках научной работы на кафедре, изучаю возможности применения семантического анализа в задачах САПР.