| この記事の要点 |
|---|
|
Tomcat の起動・停止スクリプト
Tomcat の bin/ フォルダに以下のスクリプトがあります:
| スクリプト | 役割 |
|---|---|
startup.sh / .bat | バックグラウンドで起動 |
shutdown.sh / .bat | 停止 |
catalina.sh / .bat run | フォアグラウンド起動(ログが端末に出る) |
catalina.sh / .bat start | バックグラウンド起動(startup.sh と同等) |
catalina.sh / .bat stop | 停止 |
catalina.sh / .bat configtest | 設定ファイル検証 |
version.sh / .bat | バージョン情報表示 |
Linux / Mac での起動
# 環境変数設定
$ export CATALINA_HOME=/opt/tomcat
$ export JAVA_HOME=/usr/lib/jvm/java-17
# 起動 (バックグラウンド)
$ $CATALINA_HOME/bin/startup.sh
Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME: /usr/lib/jvm/java-17
Using CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Tomcat started.
# 起動確認
$ curl -I http://localhost:8080/
# 停止
$ $CATALINA_HOME/bin/shutdown.sh
# フォアグラウンド起動(Ctrl+C で停止)
$ $CATALINA_HOME/bin/catalina.sh run
Windows での起動
REM 環境変数設定 (永続化したい場合)
> setx CATALINA_HOME "C:\apache-tomcat-9.0.71"
> setx JAVA_HOME "C:\Program Files\Eclipse Adoptium\jdk-17"
REM 起動 (新しいコンソールウィンドウが開く)
> %CATALINA_HOME%\bin\startup.bat
REM 停止
> %CATALINA_HOME%\bin\shutdown.bat
REM フォアグラウンド (現在のウィンドウでログ表示)
> %CATALINA_HOME%\bin\catalina.bat run
Windows サービスとして起動
REM サービスインストール (管理者権限のコマンドプロンプト)
> %CATALINA_HOME%\bin\service.bat install Tomcat9
REM サービス開始
> sc start Tomcat9
REM または
> net start Tomcat9
REM 停止
> sc stop Tomcat9
> net stop Tomcat9
REM サービス削除
> %CATALINA_HOME%\bin\service.bat remove Tomcat9
systemd サービス(Linux 推奨)
サービスファイル作成
# /etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/lib/jvm/java-17"
Environment="CATALINA_PID=/opt/tomcat/tomcat.pid"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_OPTS=-Xms1g -Xmx2g -server -XX:+UseG1GC"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
RestartSec=10
Restart=on-failure
[Install]
WantedBy=multi-user.target
# 有効化
$ sudo systemctl daemon-reload
$ sudo systemctl enable tomcat
$ sudo systemctl start tomcat
# 状態確認
$ sudo systemctl status tomcat
● tomcat.service - Apache Tomcat Web Application Container
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled)
Active: active (running) since ...
# ログ確認
$ sudo journalctl -u tomcat -f
# 停止 / 再起動
$ sudo systemctl stop tomcat
$ sudo systemctl restart tomcat
JVM オプションのカスタマイズ
bin/setenv.sh(または setenv.bat)を新規作成して以下を記述:
#!/bin/sh
# bin/setenv.sh
export CATALINA_OPTS="-server \
-Xms1g -Xmx4g \
-XX:MetaspaceSize=128m \
-XX:MaxMetaspaceSize=512m \
-XX:+UseG1GC \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=/var/log/tomcat-heapdump.hprof \
-Djava.net.preferIPv4Stack=true \
-Dfile.encoding=UTF-8"
export JAVA_OPTS="$JAVA_OPTS -Duser.timezone=Asia/Tokyo"
ポート変更
デフォルトの 8080 を変更したい場合は conf/server.xml:
<!-- conf/server.xml -->
<Connector port="9090" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
起動しないときのチェックリスト
- 環境変数:
JAVA_HOME/CATALINA_HOME確認 - ポート競合: 別プロセスが 8080 を使用していないか
- ログ確認:
logs/catalina.out/catalina.YYYY-MM-DD.log - ファイル権限: tomcat ユーザがログ・work ディレクトリに書き込めるか
- conf/server.xml の構文: XML パースエラーがないか
- webapps 内に壊れた WAR がないか: 展開失敗で起動が止まる
- メモリ:
-Xmxが大きすぎて OS にメモリがないと起動失敗
関連記事
子ページ
子ページはありません
同階層のページ
- 起動方法
- 仮想環境の作成
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- プロジェクトをTomcatプロジェクトとして認識させる方法 2026-10-07 22:32:50
- MySQLの1366 Incorrect string value|Laravelの文字コード・絵文字エラー 2026-10-07 21:54:03
- curlの証明書ホスト名不一致|旧エラー51・現行60の確認と対処 2026-10-07 21:54:03
- LaravelのMassAssignmentException|fillableの原因と安全な対処 2026-10-07 21:54:03
- Eclipse で Tomcat の起動ログがコンソールに出ない時の確認手順 2026-10-07 21:54:02
- MySQLにおける中央値(Median)の導き方(バージョン8未満) 2026-10-07 13:49:45
- getInputForward 2026-10-07 13:41:15
- JSONから配列に変換 2026-10-07 13:41:15
- ビューから値をモデルに格納しコントローラーで受け取る方法 2026-10-07 13:23:41
- Laravelのテーブル作成と定義変更|マイグレーション・up/down・注意点 2026-10-07 13:23:41
- NumPy 配列に要素を追加する方法 (append / concatenate) 2026-10-07 13:23:41
- MariaDB・MySQLで現在日時を取得する方法|NOW・タイムゾーン・保存型 2026-10-07 13:13:36
- 【django】テンプレートで定数を使用する方法 2026-10-07 13:10:15
- Spring BootにおけるApplication.propertiesの環境依存設定の分割方法 2026-10-07 12:09:35
- Not supported for DML operations【Springエラー】 2026-10-07 11:09:38