◀ 8.

Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ

▶
この記事の要点
  • Tomcat の起動を確認する 5 つの方法
  • ① ブラウザ: 対象ホスト・ポート・パスのHTTP応答を確認。ルートの歓迎ページとManager管理画面は別で、表示されないだけでは未起動と断定しない
  • ② プロセス確認: ps aux | grep tomcat / jps
  • ③ ポート確認: netstat -an | grep 8080 / lsof -i :8080
  • ④ ログ確認: 有効なCATALINA_BASE・ログ設定・起動方式から出力先を確認し、対象プロセスの今回の起動時刻と照合する
  • ⑤ HTTP: curlの通信終了とHTTPステータスを分けて確認。200でもTomcat自身や目的のアプリ全体の正常性は保証しない

 

方法 1: ブラウザでアクセス

Tomcat 10.1の標準HTTP Connectorのポート例は8080です。実際のserver.xml・公開経路・アプリのcontext pathに合わせます。localhostはブラウザを動かす端末自身であり、離れたTomcatサーバーを指すとは限りません。

http://localhost:8080/
http://<サーバIP>:8080/

想定した接続先で歓迎ページが表示されれば、そのURLへの応答を確認できます。ただし別プロセスやリバースプロキシの応答でないかも照合します。ページが表示されない場合の切分け候補は次です。

  • 対象プロセスが存在しない・起動に失敗した可能性。まず状態と直近ログを確認し、確認できないだけでstartup.sh / startup.batを重ねて実行しない
  • ポートが変更されている (conf/server.xml 確認)
  • ファイアウォールでブロック
  • 歓迎ページが削除されている(webapps/ROOT/ の中身確認)

方法 2: プロセス確認

名前の一致だけでは対象インスタンスを特定できません。PID、実行ユーザー、起動引数のcatalina.baseとhomeを照合します。jpsはJDKの有無・権限・実行環境で見える範囲が異なります。プロセスが存在しても目的アプリの正常稼働まで保証しません。

Linux / Mac

# Tomcat プロセスを探す
$ ps aux | grep -i tomcat | grep -v grep
tomcat   1234 ... -Dcatalina.home=/opt/tomcat -Dcatalina.base=/opt/tomcat
       org.apache.catalina.startup.Bootstrap start

# Java プロセスから絞り込み
$ jps -v
1234 Bootstrap -Dcatalina.home=/opt/tomcat ...
1235 Jps -Denv.class.path=...

# プロセス ID だけ
$ pgrep -f tomcat
1234

Windows

> tasklist | findstr java
java.exe       1234 Services   0   512,000 K

> jps -v
1234 Bootstrap ...

方法 3: ポートの LISTEN 状態を確認

対象のホスト/コンテナでLISTENと所有PIDを照合します。接続済みソケットや別Javaプロセスの8080を起動確認と混同しません。LinuxのssとmacOS等のnetstatは形式が異なり、次のコマンドを全OS共通として使う例ではありません。特にmacOSの*.8080形式には、下のコロン前提のgrepが一致しないことがあります。

Linux / Mac

# netstat
$ netstat -an | grep -E ":8080.*LISTEN"
tcp46  0  0  *.8080  *.*  LISTEN

# ss (より新しい)
$ ss -tnlp | grep 8080
LISTEN 0  100  *:8080  *:*  users:(("java",pid=1234,fd=46))

# lsof
$ lsof -i :8080
java    1234 tomcat  46u  IPv6  TCP *:http-alt (LISTEN)

Windows

> netstat -ano | findstr 8080
TCP    0.0.0.0:8080   0.0.0.0:0   LISTENING   1234

# PID 1234 がどのプロセスか確認
> tasklist /FI "PID eq 1234"
java.exe   1234 ...

方法 4: ログで起動完了メッセージを確認

下のHOMEパスはHOMEとBASEが同じ構成の元例です。標準のファイルログはCATALINA_BASE/logs、設定はCATALINA_BASE/conf/logging.propertiesを確認します。Unixのstartと前面のrun、Windowsサービスでは標準出力の行き先が異なり、catalina.outがないだけでは異常と判断しません。固定した日付の例は今日のログではなく、末尾5件のgrepも「過去N分」の抽出にはなりません。今回のPID/起動時刻とログ日時を照合してください。

# 起動ログを末尾から監視
$ tail -f $CATALINA_HOME/logs/catalina.out
# または日付付きログ
$ tail -f $CATALINA_HOME/logs/catalina.2026-05-15.log

# 起動完了の典型メッセージ
INFO: Server startup in [1234] milliseconds
# または
INFO: Server startup in [1234] ms

# 過去 N 分以内の起動を grep
$ grep "Server startup" $CATALINA_HOME/logs/catalina.out | tail -5

方法 5: HTTP リクエストでステータスチェック

HEADとGETで応答が異なる場合があります。301/302は転送、401/403は認証・認可、404はパスやデプロイ等を切り分ける手掛かりで、Tomcat未起動という意味ではありません。レスポンスのServerヘッダーやページの文字列だけで製品/版を確定しないでください。下のManager認証値は教材用の例で、実資格情報をコマンド履歴へ埋め込まず、管理URLを公開したり認証を解除したりしません。

# HEAD リクエストでヘッダだけ取得
$ curl -I http://localhost:8080/
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=ISO-8859-1
Date: Fri, 15 May 2026 12:00:00 GMT

# Tomcat バージョン情報を取得
$ curl http://localhost:8080/ -s | grep -i tomcat

# Manager アプリ経由(要認証)
$ curl -u tomcat:s3cret http://localhost:8080/manager/status

シェルスクリプトでヘルスチェック

次の元スクリプトは200以外をすべて未起動と表示するため、そのまま死活監視へ使わないでください。接続失敗とHTTPエラーを分けず、待ち時間の上限もありません。判定の問題を読むために元例を残し、その後に限定した訂正版を示します。

#!/bin/bash
# tomcat-check.sh
URL="http://localhost:8080/"
CODE=$(curl -s -o /dev/null -w "%{http_code}" $URL)

if [ "$CODE" = "200" ]; then
    echo "Tomcat is running (HTTP $CODE)"
    exit 0
else
    echo "Tomcat is NOT running (HTTP $CODE)"
    exit 1
fi

次は既知の読取り用URLを指定するPOSIX sh/curlの限定例です。終了0は対象URLの200、1は200以外のHTTP応答、2は通信失敗を示すだけで、Tomcat停止や全アプリの健康状態を断定しません。接続3秒/全体8秒はこの例の上限で、運用の応答目標を保証する値ではありません。

#!/bin/sh
# Observe a known read-only URL; do not restart services from this check.
URL=${1:-http://127.0.0.1:8080/}
CODE=$(curl --disable --silent --show-error --connect-timeout 3 --max-time 8 --output /dev/null --write-out '%{http_code}' -- "$URL")
RC=$?
if [ "$RC" -ne 0 ]; then
    printf 'Transport failed: curl=%s (Tomcat state is undetermined)\n' "$RC"
    exit 2
fi
printf 'HTTP response: %s (not proof of Tomcat or application health)\n' "$CODE"
if [ "$CODE" = "200" ]; then
    exit 0
fi
exit 1

systemd でサービス起動の場合

この節の下側にあるstart/stop/restart/enableは状態変更の参考例であり、起動を確認するために一括実行する手順ではありません。まず実際のunit名でstatusを読みます。activeでも目的のHTTP応答や全アプリが正常とは限らず、unitがないだけで別方式のTomcatまで存在しないとは判断しません。停止・再起動・自動起動設定の変更は影響と承認を確認した別の作業です。

# サービスステータス
$ systemctl status tomcat
● tomcat.service - Apache Tomcat Web Application Container
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled)
   Active: active (running) since Fri 2026-05-15 12:00:00 JST
 Main PID: 1234 (java)
    Tasks: 35
   Memory: 512.0M
   CGroup: /system.slice/tomcat.service
           └─1234 /usr/lib/jvm/java-11/bin/java ...

# サービス操作
$ sudo systemctl start tomcat
$ sudo systemctl stop tomcat
$ sudo systemctl restart tomcat
$ sudo systemctl enable tomcat   # 自動起動設定

Tomcat が起動しない場合のチェックリスト

  1. 環境変数: JAVA_HOME / CATALINA_HOME 確認
  2. ポート競合: 別プロセスが 8080 を使用中
  3. ファイル権限: tomcat ユーザがログディレクトリに書き込めるか
  4. メモリ不足: -Xmx の値が大きすぎてメモリ確保できない
  5. conf/server.xml の構文エラー: XML パースに失敗
  6. conf/context.xml の DB 設定エラー: DataSource 取得に失敗
  7. web.xml の構文エラー: 個別アプリ配下
  8. WAR の解凍失敗: webapps/ 内に壊れた WAR

関連記事

確認先: Tomcat 10.1 Logging、RUNNING、catalina.sh、Windowsサービス設定。curlのオプション/終了コード。2026-10-28に公式資料を照合しました。実環境のTomcat・サービス・ログ回収やアプリの正常性を検証した記録ではありません。

子ページ

子ページはありません

同階層のページ
  1. tomcatインストール(CentOS)
  2. WARファイルのAutoDeploy設定
  3. tomcatの起動/停止(Linux, Mac)
  4. JRE(JVM)のJavaのバージョン確認方法
  5. エラー一覧
  6. CATALINA_HOMEの確認方法(Linux, Mac)
  7. 管理画面の開き方
  8. tomcatの起動確認方法
  9. tomcatの起動/停止ログとcatalina.log/catalina.outの違い
  10. CentOSにおけるポート開放方法
  11. Javaのバージョン変更方法(Mac編)

最近更新/作成されたページ