web-dev-qa-db-fra.com

Tomcat n'arrête ni ne redémarre

J'ai essayé d'arrêter Tomcat. Il a échoué avec ce message: 

  • Tomcat ne s'est pas arrêté à temps. Le fichier PID n'a pas été supprimé.

J'ai alors essayé à nouveau et j'ai eu ceci:

  • Le fichier PID (/opt/Tomcat/work/catalina.pid) a été trouvé, mais aucun processus Correspondant n'a été trouvé. Arrêtez avorté.

J'ai ensuite essayé de démarrer Tomcat en mode débogage et j'ai obtenu ceci:

  • Fichier PID (/opt/Tomcat/work/catalina.pid) trouvé. Tomcat est-il toujours En cours d'exécution? Commencez avorté.

Je leur ai supprimé /opt/Tomcat/work/catalina.pid et essayé de redémarrer et obtenu ceci:

  • $ CATALINA_PID a été défini (/opt/Tomcat/work/catalina.pid) mais le fichier spécifié N'existe pas. Tomcat est-il en cours d'exécution? Arrêtez avorté.

Quelqu'un sait comment faire redémarrer Tomcat?

23
TheCoder

Il semble que Tomcat ait été arrêté. Je l'ai commencé et tout a bien commencé. Merci a tous.

1
TheCoder

J'ai eu ce message d'erreur après avoir démarré un serveur second Tomcat sur un serveur Linux.

$CATALINA_PID was set but the specified file does not exist. Is Tomcat running? Stop aborted.

Lors du démarrage du deuxième Tomcat, j'avais défini CATALINA_PID comme demandé mais mon erreur était de le définir dans un répertoire (j'ai supposé que Tomcat écrirait un nom de fichier par défaut avec le pid).

Le correctif consistait simplement à changer mon CATALINA_PID afin d’ajouter un nom de fichier à la fin de celui-ci (j’ai choisi catalina.pid parmi les exemples ci-dessus). Ensuite, je suis allé au répertoire et ai fait un simple:

touch catalina.pid

créer un fichier vide du nom correct. Puis, quand j'ai arrêté shutsh.sh, j'ai reçu le message:

PID file is empty and has been ignored.
Tomcat stopped.

Je n'avais pas la possibilité de tuer Tomcat car la JVM était utilisée, j'étais donc content d'avoir trouvé ça.

5
Scala Enthusiast

Récemment j'ai rencontré plusieurs fois d'arrêt anormal. Bien que shutdown.sh fournisse des informations, les situations sont les suivantes:

  • le résultat de la commande ps -ef| grep Java est Null.
  • le résultat de la commande ps -ef| grep Java n'est pas nul. 

Mon avis est juste de tuer le processus de Catalina et de supprimer le fichier pid (Dans votre situation, se trouve /opt/Tomcat/work/catalina.pid.)

Le résultat ne semble pas sérieusement influencer les autres.

1
onebraveman

Assurez-vous que Tomcat n'est pas en cours d'exécution et que le fichier PID est supprimé. Eux, vous devriez démarrer Tomcat avec succès.

Si vous commencez à nouveau, alors:

  1. Créez le fichier setenv.sh dans <CATALINA_HOME>/bin.
  2. J'y ai placé CATALINA_PID=/tmp/Tomcat.pid (ou un autre répertoire de votre choix) pour que vous ayez plus de contrôle sur le processus Tomcat.

Ensuite, pour démarrer Tomcat, recherchez catalina.sh dans <CATALINA_HOME>/bin et exécutez:

./catalina.sh start

et pour l'arrêter courir:

./catalina.sh stop 10 -force

De la doc du script catalina.sh:

./catalina.sh

Usage: catalina.sh ( commands ... )
commands:

start             Start Catalina in a separate window
stop              Stop Catalina, waiting up to 5 seconds for the process to end
stop n            Stop Catalina, waiting up to n seconds for the process to end
stop -force       Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running
stop n -force     Stop Catalina, wait up to n seconds and then use kill -KILL if still running

Remarque: Si vous souhaitez utiliser l'indicateur -force, la définition de CATALINA_PID est obligatoire.

1
nyxz

Vous pouvez aller à l'emplacement $ {CATALINA_HOME}/logs / Open catalina.pid. Ici, nous allons obtenir le pid . Puis terminer le processus . Kill -9 pid

1
akhil_unix

FIRST -> rm catalina.engine

ALORS -> ./startup.sh

NEXT TIME vous redémarrez -> ./shutdown.sh -force

0
Bouramas

parfois, si le même pid est en cours d'exécution après le redémarrage, Tomcat ne démarre pas

mon fichier pid était à Apache-Tomcat/temp/Tomcat.pid

 change file Apache-Tomcat/bin/catalina.sh about line 386 
 from "ps -p $PID >/dev/null 2>&1"
 to "ps -fp $PID |grep catalina >/dev/null 2>&1"

extrait du fichier catalina.sh

 if [ ! -z "$CATALINA_PID" ]; then
    if [ -f "$CATALINA_PID" ]; then
      if [ -s "$CATALINA_PID" ]; then
        echo "Existing PID file found during start."
        if [ -r "$CATALINA_PID" ]; then
          PID=`cat "$CATALINA_PID"`
          ps -fp $PID |grep catalina >/dev/null 2>&1  #this line
          if [ $? -eq 0 ] ; then
            echo "Tomcat appears to still be running with PID $PID. Start aborted."
            echo "If the following process is not a Tomcat process, remove the PID file and try again:"
            ps -f -p $PID
            exit 1
          else
            echo "Removing/clearing stale PID file."
            rm -f "$CATALINA_PID" >/dev/null 2>&1
            if [ $? != 0 ]; then
              if [ -w "$CATALINA_PID" ]; then
                cat /dev/null > "$CATALINA_PID"
              else
                echo "Unable to remove or clear stale PID file. Start aborted."
                exit 1
              fi
            fi
          fi
        else
          echo "Unable to read PID file. Start aborted."
0
Shimon Doodkin

Avez-vous essayé $ Sudo ./catalina.sh stop? Cela a fonctionné dans mon cas.

0
Piotrycjan

Vous pouvez toujours essayer de tuer le processus au cas où vous rencontriez ce type de problème ..__ Vous pouvez obtenir l'ID du processus soit depuis PS, soit depuis un fichier pid, et tuer le processus.

0
Vijay