web-dev-qa-db-fra.com

Tomcat est-il en cours d'exécution?

Intéressé de savoir comment les gens vérifient généralement si Tomcat fonctionne sous un environnement Unix. 

Je vérifie soit que le processus s'exécute en utilisant 

ps -ef | grep Java
ps -ef | grep logging

ou je vérifie que le numéro de port est actif

netstat -a | grep 8080

existe-t-il un meilleur moyen de vérifier que Tomcat fonctionne? Ce qui précède semble être un moyen "astucieux" de vérifier que Tomcat fonctionne.

93
ziggy

Pourquoi grep ps, lorsque le pid a été écrit dans le fichier $CATALINA_PID?

J'ai un script cron 'd checker qui envoie un courrier électronique lorsque Tomcat est en panne:

kill -0 `cat $CATALINA_PID` > /dev/null 2>&1
if [ $? -gt 0 ]
then
    echo "Check Tomcat" | mailx -s "Tomcat not running" [email protected]
fi

Je suppose que vous pouvez également utiliser wget pour vérifier l'état de santé de votre Tomcat. Si vous avez une page de diagnostic avec le chargement de l'utilisateur, etc., vous pouvez la récupérer périodiquement et l'analyser pour déterminer si quelque chose ne va pas.

50
dogbane

Sur mon système Linux, je lance Tomcat avec le script startup.sh. Pour savoir s'il fonctionne ou non, j'utilise 

ps -ef | grep Tomcat  

Si le résultat en sortie contient le chemin d'accès complet à mon dossier Tomcat, il est en cours d'exécution

74
Thai Tran

essayez plutôt ceci et parce qu'il a besoin de privilèges root, utilisez Sudo

Sudo service Tomcat7 status
61
Kemboi

netstat -lnp | grep 8080 serait probablement la meilleure solution si vous connaissez le port d'écoute de Tomcat. Si vous voulez être certain que cela fonctionne, vous devez établir une connexion, envoyer une requête HTTP et obtenir une réponse. Vous pouvez le faire par programme ou en utilisant n’importe quel navigateur Web.

12
Michael Goldshteyn

Si Tomcat est installé localement, entrez l'URL suivante dans une fenêtre de navigateur: {Localhost: 8080}

Ceci affichera la page d'accueil de Tomcat avec le message suivant.

Si vous voyez cela, vous avez correctement installé Tomcat. Toutes nos félicitations!

Si Tomcat est installé sur un serveur distinct, vous pouvez taper remplacez localhost par un nom d'hôte valide ou Iess où Tomcat est installé.

Ce qui précède s’applique à une installation standard dans laquelle Tomcat utilise le port par défaut 8080.

8
Lokanath

Vous pouvez vérifier le statut de Tomcat de l'une des manières suivantes:

ps -ef | grep Tomcat  

Cela renverra le chemin Tomcat si Tomcat est en cours d'exécution

netstat -a | grep 8080

où 8080 est le port Tomcat

6
Dhanish Jose

wget url ou curl url où url est une URL du serveur Tomcat qui devrait être disponible, par exemple: wget http://localhost:8080. Vérifiez ensuite le code de sortie, s'il est 0 - Tomcat est opérationnel.

4
Dikla

Créez un script Shell qui vérifie si Tomcat est actif ou inactif, définissez un cron pour que sh le vérifie toutes les quelques minutes et lance automatiquement Tomcat en cas d'arrêt. Extrait de code ci-dessous 

Tomcat_PID=$(ps -ef | awk '/[t]omcat/{print $2}')
echo Tomcat PROCESSID $Tomcat_PID

if [ -z "$Tomcat_PID" ]
then
    echo "Tomcat NOT RUNNING"
    Sudo /opt/Tomcat/bin/startup.sh
else
   echo "Tomcat RUNNING"
fi
4
Devendra Dora

J'ai trouvé Tomcat plutôt pointilleux dans la mesure où un processus en cours d'exécution ou un port ouvert ne signifie pas nécessairement qu'il gère réellement les demandes. J'essaie généralement de saisir une page connue et de comparer son contenu avec une valeur attendue pré-calculée.

3
Alex Howansky

Je fais toujours 

tail -f logs/catalina.out

Quand je vois là 

INFO: Server startup in 77037 ms

alors je sais que le serveur est en place.

3
konkit

Essayez-vous de mettre en place un système d'alerte? Pour un simple "battement de coeur", envoyez une requête HTTP au port Tomcat.

Pour une surveillance plus élaborée, vous pouvez configurer JMX et/ou SNMP pour afficher les statistiques de la machine virtuelle Java. Nous utilisons Nagios avec le plug-in SNMP (passerelles vers JMX) pour vérifier l'utilisation de la mémoire de Tomcat et demander la taille du pool d'unités d'exécution toutes les 10-15 minutes.

http://Tomcat.Apache.org/Tomcat-6.0-doc/monitoring.html

Mise à jour (2012):

Nous avons mis à niveau nos systèmes afin qu'ils utilisent "monit" pour vérifier le processus Tomcat. J'aime vraiment ça. Avec très peu de configuration, il vérifie automatiquement que le service est en cours d'exécution et redémarre automatiquement s'il ne le fait pas. (envoi d'une alerte email). Il peut s'intégrer aux scripts /etc/init.d ou vérifier par nom de processus. 

2
Will Glass

Depuis que mes instances Tomcat sont nommées Tomcat_. Par exemple. Tomcat_8086, j'utilise

ps aux | grep Tomcat

Autre méthode utilisant l'utilitaire nc

nc -l 8086 (numéro de port)

Ou

ps aux | grep Java

1
Himanshu Chauhan

Tomcat.sh vous aide à le savoir facilement.

Le document d'utilisation de Tomcat.sh dit:

aucun argument: affiche l'identifiant de processus du Tomcat, s'il est en cours d'exécution, sinon ne fait rien

alors exécutez la commande sur votre invite de commande et vérifiez le pid:

$ tocmat.sh

0
Techflash

Essayez cette commande 

ps -ef | awk '/[t]omcat/{print $2}' 

Il retournera le pid si Tomcat est en cours d'exécution.

0
Alin
$ Sudo netstat -lpn |grep :8080

Pour vérifier le numéro de port

$ ps -aef|grep Tomcat

Tomcat est-il en cours d'exécution sous le serveur?.

tsssinfotech-K53U infotech # ps -aef|grep Tomcat

root 9586 9567 0 11:35 pts/6 00:00:00 grep --colour = auto Tomcat

0
Batchu Bhargava

Voici mes deux cents.

Plusieurs instances de Tomcat s'exécutent sur différents ports pour la configuration de mon cluster. J'utilise la commande suivante pour vérifier chaque processus s'exécutant sur des ports différents. 

/sbin/fuser 8080/tcp

Remplacez le numéro de port selon vos besoins.

Et pour tuer le processus, utilisez -k dans la commande ci-dessus.

  • Ceci est beaucoup plus rapide que la méthode ps -ef ou toute autre commande dans laquelle vous appelez une commande et appelez une autre grep par dessus.
  • Fonctionne bien avec plusieurs installations de Tomcat, ou avec tout autre serveur utilisant un port s’exécutant sur le même serveur.

La commande équivalente sur les systèmes d'exploitation BSD est fstat

0
Raja Anbazhagan

En gros, vous voulez tester

  1. Connectivité à votre instance Tomcat
  2. Recueillir des statistiques de base
  3. Si le processus unix est en cours d'exécution

J'évaluerai les deux premières options car la troisième a déjà reçu une réponse suffisante.

le plus simple consiste simplement à développer une page Web sur votre application Web qui rassemble certaines métriques de base et à avoir un client capable de lire les résultats ou de détecter les problèmes de connectivité.

Pour ce faire, vous avez plusieurs problèmes

0
YoYo