web-dev-qa-db-fra.com

Arrêter une application Web Tomcat à partir de la ligne de commande

J'écris un script bash qui déploie automatiquement une application sur un serveur Tomcat. Comment puis-je arrêter l'application à partir de bash/ligne de commande?

19
Michael Küller

La méthode la plus simple que je connaisse est d'installer la webapp du gestionnaire Tomcat, de noter l'URL pour arrêter une application et wget cette URL.

12
Sam

Essayez ceci script de ligne de commande pour gérer Tomcat appelé Tomcat-manager. Il nécessite Python, mais vous permet de faire des choses à partir d'un shell Unix comme:

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

et:

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

Parce qu'il parle à Tomcat via HTTP, il fonctionne "localement", c'est-à-dire via localhost, ou depuis n'importe où votre instance Tomcat est accessible.

12
kotfu

Une autre façon consiste à utiliser CURL. Dans mon cas, je suis sur une machine Windows d'entreprise qui n'a pas WGET. J'ai cependant CURL et je peux l'utiliser via le terminal GIT BASH.

Pour répertorier les applications exécutées sur Tomcat, j'exécute les éléments suivants (avec utilisateur: mot de passe)

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

Ensuite, pour arrêter une application nommée "myapp"

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

J'utilise wget pour arrêter et démarrer des applications. L'utilisateur dans Tomcat-user.xml doit avoir des rôles de gestionnaire-script.

Pour 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

Depuis Tomcat 7 (7.0.62 pour mon installation), vous devez ajouter /text/ après gestionnaire:

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
9
Philippe RUAUDEL

Il existe trois façons d'arrêter l'application Tomcat

  1. Avec un accès local, vous pouvez bien sûr simplement arrêter le processus. Cela arrête complètement Tomcat
  2. Avec un accès local et distant, vous pouvez accéder au "port d'arrêt", défini dans server.xml (par défaut = 8005) uniquement avec son mot de passe. Si vous ouvrez un socket pour cela et envoyez le mot de passe, Tomcat s'arrête complètement.
  3. Vous suivez les conseils de Sam, ce qui vous permet d'être sélectif.
2
MJB