Tomcat: опции catalina.sh

Автор: | 02/06/2014

apache-tomcat-7-logoСервер Apache Tomcat можно запускать/останавливать не только с помощью скриптов bin/startup.sh и bin/shutdown.sh – но и напрямую вызывая скрипт catalina.sh, передавая ему нужный аргумент.

Если рассмотреть скрипт bin/startup.sh – то всё, что он делает – это вызывает сам catalina.sh передавая ему команду start и полученные аргументы:

...PRGDIR=`dirname "$PRG"`
EXECUTABLE=catalina.sh
...
exec "$PRGDIR"/"$EXECUTABLE" start "$@"

Т.е. – того же эффекта можно добиться просто выполнив:

$ ./bin/catalina.sh start
Using CATALINA_BASE:   /home/tomcats/APP/app-server
Using CATALINA_HOME:   /home/tomcats/APP/app-server
Using CATALINA_TMPDIR: /home/tomcats/APP/app-server/temp
Using JRE_HOME:        /usr/java/jdk1.6.0_45/jre/
Using CLASSPATH:       /home/tomcats/APP/limits-server/bin/bootstrap.jar:/home/tomcats/APP/app-server/bin/tomcat-juli.jar
Tomcat started.

Однако, у скрипта catalina.sh имеется ещё несколько очень полезных опций:

Опции скрипта catalina.sh

debug запуск Tomcat в debug-режиме;
debug -security запуск Tomcat в debug-режиме с security-менеджером;
jpda start запуск Tomcat с JPDA-дебаггером;
run запуск Tomcat в текущем shell (данные выводятся в консоль);
run -security запуск Tomcat в текущем shell с security-менеджером;
start запуск Tomcat в новом shell;
start -security запуск Tomcat в новом shell с security-менеджером;
stop остановка Tomcat с 5-секундным ожиданием для завершения процесса;
stop n остановка Tomcat с n-секундным ожиданием для завершения процесса;
stop -force остановка Tomcat с 5-секундным ожиданием для завершения процесса, после чего будет выполнено kill -KILL, если процесс не завершён;
stop n -force остановка Tomcat с n-секундным ожиданием для завершения процесса, после чего будет выполнено kill -KILL, если процесс не завершён;
configtest проверка синтаксис файла server.xml (нет в Tomcat 5.*);
version версия Tomcat;

Пример:

$ ./bin/catalina.sh configtest
Using CATALINA_BASE:   /home/tomcats/APP/app-server
Using CATALINA_HOME:   /home/tomcats/APP/app-server
Using CATALINA_TMPDIR: /home/tomcats/APP/app-server/temp
Using JRE_HOME:        /usr/java/jdk1.6.0_45/jre/
Using CLASSPATH:       /home/tomcats/APP/limits-server/bin/bootstrap.jar:/home/tomcats/APP/app-server/bin/tomcat-juli.jar
May 30, 2014 3:45:14 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/jdk1.6.0_45/jre/lib/amd64/server:/usr/java/jdk1.6.0_45/jre/lib/amd64:/usr/java/jdk1.6.0_45/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
May 30, 2014 3:45:14 PM org.apache.catalina.startup.SetAllPropertiesRule begin
WARNING: [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'port' to '${port.http}' did not find a matching property.
May 30, 2014 3:45:14 PM org.apache.catalina.startup.SetAllPropertiesRule begin
WARNING: [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'redirectPort' to '${port.https}' did not find a matching property.
May 30, 2014 3:45:14 PM org.apache.catalina.startup.Catalina load
WARNING: Catalina.start using conf/server.xml:
java.net.MalformedURLException: no protocol: ${connector.config}
...
Configuration error detected!