Остановить tomcat веб-приложения из командной строки

Я пишу bash script, который автоматически развертывает приложение на сервере tomcat. Как остановить приложение из bash/командной строки?

Ответ 1

Самый простой способ, который я знаю, - установить диспетчер Tomcat webapp, отметить URL-адрес для остановки приложения и wget этого URL-адреса.

Ответ 2

Попробуйте выполнить командную строку script для управления tomcat под названием tomcat-manager. Это требует Python, но позволяет делать вещи из оболочки Unix, например:

$ tomcat-manager --user=admin --password=newenglandclamchowder \
> http://localhost:8080/manager/ stop /myapp

и

$ tomcat-manager --user=admin --password=newenglandclamchowder \
> http://localhost:8080/manager deploy /myapp ~/src/myapp/myapp.war

Поскольку он разговаривает с tomcat через HTTP, он работает "локально", то есть через localhost или из любого места, где доступен ваш экземпляр tomcat.

Ответ 3

Я использую wget для остановки и запуска приложений. Пользователь в tomcat-user.xml должен иметь роли менеджера script.

Для TOMCAT 5/6:

wget "http://<user>:<password>@<servername>:<port>/manager/stop?=/<application context>" -O - -q
wget "http://<user>:<password>@<servername>:<port>/manager/start?=/<application context>" -O - -q

Поскольку TOMCAT 7 (7.0.62 для моей установки), вы должны добавить /text/ после менеджера:

wget "http://<user>:<password>@<servername>:<port>/manager/text/stop?path=/<application context>" -O - -q
wget "http://<user>:<password>@<servername>:<port>/manager/text/start?path=/<application context>" -O - -q

Ответ 4

Существует три способа остановить приложение tomcat

  • При локальном доступе вы можете, конечно, просто остановить процесс. Это полностью останавливает tomcat.
  • С локальным и удаленным доступом вы можете получить доступ к "порту выключения", определенному в server.xml(по умолчанию = 8005) с его паролем. Если вы откроете для этого сокет и отправьте пароль, tomcat полностью отключится.
  • Вы следуете советам sam, который позволяет вам быть избирательными.

Ответ 5

Другой способ - использовать CURL. В моем случае я на корпоративной машине Windows, у которой нет WGET. Однако у меня есть CURL, и я могу использовать его через терминал GIT BASH.

Чтобы отобразить приложения, запущенные на Tomcat, я запускаю следующее (с пользователем: пароль)

curl --user admin:admin http://localhost:8080/manager/text/list

Затем, чтобы остановить приложение с именем "myapp"

curl --user admin:admin http://localhost:8080/manager/text/stop?path=/myapp