突然Tomcat起動しなくなった時の対処法

投稿 2022年7月9日

更新 2022年7月9日

専門用語の数:

突然Tomcat起動しなくなった時の対処法

~ 目次 ~

Tomcatが起動しなくなった

解決方法

起動できない原因

まとめ

Tomcatが起動しなくなった

Tomcatを使用したサービスが、突然動作しなくなることは

まれによくあります(?)


そういう時にTomcatを再起動すると、以下のようなエラーが発生します。

java.net.BindException: Address already in use: bind

ポート番号が競合しているというエラーです。

解決方法

プロセスIDを特定

ps -ef | grep tomcat root  57  0  19  19:42  ?  00:01:30  /usr/local/openjdk-8/bin/java(長いので省略...

実行結果の左から2番目がプロセスIDです。

※上記の場合だと、「57」がプロセスIDです。

Tomcat停止

通常のコマンドでは停止できないので、以下のコマンドを使用します。

kill -KILL [プロセスID]

※[プロセスID] の部分には、さきほどのコマンドで出てきた

プロセスIDの数字を入力してください。


実際のコマンドでいうと、こんな感じです。

kill -KILL 57

何回かプロセスIDを特定するコマンドを実行して、

完全にプロセスIDが出てこなくなるまで繰り返します。

Tomcat起動

Tomcatは正常終了後の正常起動でないと、うまく動きません。

そのため、起動→停止→起動を実行します。

service tomcat start service tomcat restart

起動できない原因

Tomcatは内部的にいくつかのプロセスを起動します。

server.xmlでどのプロセスを起動するかが定義されています。

代表的には以下のようなものです。

プロセス ポート番号
シャットダウン 8005
直接アクセス 8005
AJPアクセス 8009
SSLアクセス 8443

Tomcatを停止するというのは、言い換えると

起動しているプロセスをすべて停止するということです。


ただ、原因は不明ですが、突然特定プロセスだけ落ちてしまった。

再起動時に特定プロセスだけ落としきれなかった。

ということが起きると、Tomcatを制御できなくなってしまいます。


その状態をリセットすべく、すべてのプロセスを落としてから

Tomcatを起動しなおすという意味です。

まとめ

Tomcatが起動できなくなる対処法でした。

急いでるときに限って起動できなくなると、本当につらいです。。。

これで解決できれば幸いです。


以上、ここまで見ていただきありがとうございます。

皆さまの快適な開発ライフに、ほんの少しでもお役に立てれば幸いです。

コメント一覧

コメントがまだありません

コメントを投稿してみる

コメント(必須※500文字以内)

お名前(必須※30文字以内)

※日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)