tomcatの再起動がうまくいかないとき(Stop aborted)

By | 2015年7月26日

サーバを再起動してtomcatが自動起動したと思ったらlocalhost:8080が表示できず、手動で起動しようとしたら既に起動しているというメッセージが出てくる。

仕方ないのでtomcatを再起動しようとすると、シャットダウン時に以下のようなエラーが出てくる

Shutting down tomcat
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/default
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_PID:    /var/run/catalina.pid
PID file found but no matching process was found. Stop aborted.

色々ぐぐってみると、/var/run/catalina.pidにプロセスIDがあるからそれをみてkillしろとか、

ps -ef | grep tomcat

で出てきたpidをkillしろという記事が多かったが、前者は「そのようなプロセスはありません」と言われてしまうし、後者はそもそもプロセスが無かったりで思うようにいかない。

/var/run/catalina.pid を消して再度起動させてみるも結果変わらず・・・

$CATALINA_HOME/logs/catalina.outでログを見てると

/usr/local/tomcat/bin/catalina.sh: line 387: /usr/java/default/bin/java: そのようなファイルやディレクトリはありません

あれ?

ある不安が脳裏をよぎる。

まず$CATALINA_HOME/bin/catalina.shの中身を見てみることに。

javaのパスが/usr/javaとなっていたが、このサーバではそこにjavaが存在しない・・・!

そういえば急遽tomcatが必要になったからjavaはデフォルトで入ってるOpenJDKを使っていて、ちゃんとJDKの最新版をダウンロードしてきてインストールしてなかった・・・

JDKを入れる

httpd停止→tomcat停止→tomcat起動→httpd起動の順で実行

うまくいった。

結論
tomcatを使うならJDKを入れましょう。

参考:

alternatives コマンドを使用した java バージョンの切り替え

Sun社のJDK7、OpenJDK、そしてIcedTea:曖昧さの回避

One thought on “tomcatの再起動がうまくいかないとき(Stop aborted)

  1. 匿名

    全く同じ事象にハマっていたため、大変参考になりました。
    記事にまとめて頂き、ありがとうございました。

    Reply

匿名 にコメントする コメントをキャンセル

メールアドレスが公開されることはありません。