web-dev-qa-db-ja.com

Tomcatは停止または再起動しません

Tomcatを停止してみました。次のメッセージで失敗しました:

  • Tomcatは時間内に停止しませんでした。 PIDファイルは削除されませんでした。

私はその後、もう一度試して、これを得ました:

  • PIDファイル(/opt/Tomcat/work/catalina.pid)が見つかりましたが、一致するプロセスが見つかりませんでした。中止されました。

次に、デバッグモードでTomcatを起動してみましたが、次のようになりました。

  • PIDファイル(/opt/Tomcat/work/catalina.pid)が見つかりました。 Tomcatはまだ実行中ですか?開始は中止されました。

私は/opt/Tomcat/work/catalina.pidを削除し、再起動してみました。

  • $ CATALINA_PIDが設定されました(/opt/Tomcat/work/catalina.pid)が、指定されたファイルは存在しません。 Tomcatは実行中ですか?中止されました。

Tomcatを再起動する方法を知っている人はいますか?

27
TheCoder

Tomcatは実際に停止したようです。私はそれを始めて、それはうまく始めました。皆さんありがとう。

1
TheCoder

Linuxサーバーでsecond Tomcatサーバーを起動すると、このエラーメッセージが表示されました。

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

2番目のTomcatを起動するとき、私はCATALINA_PIDを尋ねられたとおりに設定しましたが、私の間違いはそれをディレクトリに設定することでした(Tomcatがそこにpidでデフォルトのファイル名を書き込むと仮定しました)。

修正は、CATALINA_PIDを変更して、ファイル名を末尾に追加することでした(上記の例からcatalina.pidを選択しました)。次に、ディレクトリに移動して、簡単なことを行いました。

touch catalina.pid

正しい名前の空のファイルを作成します。その後、shutdown.shを実行すると、次のメッセージが返されました。

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

JVMが使用中であったため、Tomcatを強制終了するオプションがなかったため、これを見つけて良かったです。

5

Tomcatが現在実行されていないこと、およびPIDファイルが削除されていることを確認してください。 Tomcatを正常に起動する必要があります。

新しく始めた場合:

  1. setenv.sh<CATALINA_HOME>/binファイルを作成します。
  2. その中にCATALINA_PID=/tmp/Tomcat.pid(または選択した他のディレクトリ)を設定して、Tomcatプロセスをより詳細に制御できるようにします。

次に、Tomcatを起動するには、catalina.sh<CATALINA_HOME>/binを見つけて実行します。

./catalina.sh start

実行を停止するには:

./catalina.sh stop 10 -force

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

注:-forceフラグを使用する場合は、CATALINA_PIDの設定が必須です。

2
nyxz

最近、異常な停止が何度か発生しています。 shutdown.shはいくつかの情報を提供しますが、状況は次のとおりです。

  • コマンドの結果ps -ef| grep Java 無効です。
  • コマンドの結果ps -ef| grep Javaはnullではありません。

私の意見では、Catalinaのプロセスを強制終了し、pidファイルを削除するだけです(あなたの状況では/opt/Tomcat/work/catalina.pidです)。

結果は他人に影響を与えるほど深刻ではないようです。

1
onebraveman

最初-> rm catalina.engine

その後-> ./startup.sh

次回の再起動-> ./shutdown.sh -force

0
Bouramas

私の場合、Tomcat.pidは/ opt/Tomcat/temp /の下にあります。手動で削除しようとしました。それでも動作しませんでした。/opt/Tomcat/bin /のsetnev.shを確認した後、Java_HOMEを定義するコード行があることに注意してください。

export Java_HOME=/usr/lib/jvm/Java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/jre

この行をコメントアウトし、Tomcatを再起動します。できます! yumの更新とJava 1.8.0.212から1.8.0.222への更新の新しいマイナーバージョン)を行ったので、学んだ教訓:ハードコードは避けるべきです。

0

あなたの場合、catalina.pidが欠落しています。

このファイルは{your_jira_dir} /work/catalina.pidにあり、jiraの現在のインスタンスのpidが含まれています。

そう

ps aux | grep jira
  • 正しいエントリを見つける
  • 出力のPIDをコピーし、このPIDのみを含むファイルを作成します。 -jiraを実行するユーザーが読み書きできることを確認してください。
  • Jiraをもう一度シャットダウンしてください。
0
Goot

Sudo systemctl stop Tomcat

私のためにやった

0
parsecer

再起動後に同じpidが実行されていると、Tomcatが起動しない場合があります

私のpidファイルは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"

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

場所$ {CATALINA_HOME}/logs/open catalina.pidにアクセスできます。ここでpidを取得します。その後、プロセスを終了します。 -9 pidを殺す

0
akhil_unix

試してみました$ Sudo ./catalina.sh stop?私の場合はうまくいきました。

0
Piotrycjan

この種の問題が発生した場合は、いつでもプロセスを強制終了できます。 PSまたはpidファイルからプロセスIDを取得して、プロセスを強制終了できます。

0
Vijay