2012-06-18 38 views

Respuesta

10

El método más fácil que conozco es instalar la aplicación web del gestor Tomcat, tenga en cuenta la URL para detener una aplicación y wget esa URL.

+0

Esta es la respuesta correcta: si quieres detener una aplicación web individual, entonces tendrás que usar las API internas de Tomcat para hacerlo o usar JMX. La aplicación webapp Manager está configurada para todo lo que desea hacer, y también es fácil configurar la aplicación web del administrador. –

+1

Mi URL de parada debe contener el token "org.apache.catalina.filters.CSRF_NONCE". Esto complica este enfoque. – Soid

+0

La respuesta de Kotfu detalla esto mejor. –

2

Hay tres formas de detener aplicaciones Tomcat

  1. Con acceso local por supuesto puede simplemente detener el proceso. Esto detiene tomcat completamente
  2. Con acceso local y remoto puede acceder al "puerto de apagado", definido en server.xml (default = 8005) alon con su contraseña. Si abre un socket para esto y envía la contraseña, tomcat se apaga por completo.
  3. Sigues el consejo de sam, que te permite ser selectivo.
+0

Dejar de fumar por completo no es mi objetivo. Quiero ser selectivo, porque no quiero detener ninguna otra aplicación que se ejecute en paralelo –

+0

Entonces el consejo de Sam es el correcto.Tenga en cuenta que es muy fácil para un servidor de aplicaciones perder memoria con escenarios de anulación/reasignación ... – MJB

12

Probar este command-line script for managing tomcat llamado tomcat-manager. Requiere Python, pero te permite hacer cosas de una cáscara de Unix:

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

y:

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

porque habla de Tomcat a través de HTTP, funciona "local", es decir, a través de localhost, o desde cualquier lugar donde se pueda acceder a su instancia de tomcat.

4

Uso wget para detener e iniciar aplicaciones. El usuario en tomcat-user.xml debe tener roles de gestor de scripts.

para 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 

Desde TOMCAT 7 (7.0.62 para mi instalación) hay que añadir después /text/ gerente:

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 
2

Otra forma es utilizar CURL. En mi caso, estoy en una máquina corporativa de Windows que no tiene WGET. Sin embargo, tengo CURL y puedo usarlo a través del terminal GIT BASH.

para enumerar las aplicaciones que se ejecutan en Tomcat, que ejecute el siguiente (con el usuario: contraseña)

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

Luego de detener una aplicación denominada "miaplicacion"

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