ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|---|
|
事前準備
環境変数の設定
# 必須の環境変数
export JAVA_HOME=/usr/lib/jvm/java-17 # Linux
export JAVA_HOME=/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home # Mac
export CATALINA_HOME=/opt/tomcat
export PATH=$CATALINA_HOME/bin:$PATH
# .bashrc / .zshrc に追加して永続化
echo "export JAVA_HOME=/usr/lib/jvm/java-17" >> ~/.bashrc
echo "export CATALINA_HOME=/opt/tomcat" >> ~/.bashrc
echo "export PATH=\$CATALINA_HOME/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc
起動
① startup.sh(バックグラウンド)
$ $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
Using CATALINA_OPTS:
Tomcat started.
# 起動確認
$ curl -I http://localhost:8080/
HTTP/1.1 200
# プロセス確認
$ ps aux | grep tomcat
② catalina.sh run(フォアグラウンド)
ログがそのまま端末に表示され、Ctrl+C で停止できる。開発・デバッグ時に便利:
$ $CATALINA_HOME/bin/catalina.sh run
01-May-2026 12:00:00.123 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.71
...
01-May-2026 12:00:02.456 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [1234] milliseconds
^C # Ctrl+C で停止
③ catalina.sh start(バックグラウンド)
$ $CATALINA_HOME/bin/catalina.sh start
# startup.sh と機能同等
停止
① shutdown.sh
$ $CATALINA_HOME/bin/shutdown.sh
Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
...
# 停止確認
$ ps aux | grep tomcat # → プロセスが消えていれば停止完了
② catalina.sh stop
$ $CATALINA_HOME/bin/catalina.sh stop
# 強制停止オプション (シャットダウンしない場合)
$ $CATALINA_HOME/bin/catalina.sh stop 30 -force
# 30 秒待っても停止しなければ SIGKILL
再起動
# シェルスクリプトでまとめて
$ $CATALINA_HOME/bin/shutdown.sh
$ sleep 5
$ $CATALINA_HOME/bin/startup.sh
# またはワンライナー
$ $CATALINA_HOME/bin/shutdown.sh && sleep 5 && $CATALINA_HOME/bin/startup.sh
JVM オプションのカスタマイズ
bin/setenv.sh(標準で存在しない、自分で作る)で起動オプションを設定:
#!/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 \
-Duser.timezone=Asia/Tokyo"
# 実行権限
$ chmod +x bin/setenv.sh
# 確認
$ $CATALINA_HOME/bin/startup.sh
Using CATALINA_OPTS: -server -Xms1g -Xmx4g ...
systemd サービスとして管理
本番運用なら systemd で管理するのが標準:
# /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
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled)
Active: active (running) since ...
Main PID: 1234 (java)
# ログ
$ sudo journalctl -u tomcat -f
# 操作
$ sudo systemctl stop tomcat
$ sudo systemctl restart tomcat
$ sudo systemctl reload tomcat # 設定だけリロード (可能な場合)
Mac の Homebrew
# Homebrew でインストールした場合
$ brew install tomcat@9
# 起動 (フォアグラウンド)
$ catalina run
# 起動 (バックグラウンド / Homebrew services)
$ brew services start tomcat@9
$ brew services stop tomcat@9
$ brew services restart tomcat@9
# サービス一覧
$ brew services list
起動しない場合
- 環境変数:
JAVA_HOME/CATALINA_HOME確認 - ポート競合: 8080 を他プロセスが使用していないか
$ ss -tnlp | grep 8080 - ログ:
$CATALINA_HOME/logs/catalina.out/catalina.YYYY-MM-DD.log - 権限: tomcat ユーザがログ・work ディレクトリに書き込めるか
- conf/server.xml: 構文エラー →
catalina.sh configtestで検証 - conf/context.xml の DB 接続: DataSource 取得失敗
- webapps の壊れた WAR: 展開失敗で起動が止まる
停止しない場合
# 通常停止が効かない時
$ $CATALINA_HOME/bin/shutdown.sh 30 -force
# 30 秒待ってから kill -9
# それでも残るなら手動 kill
$ pgrep -f "catalina.startup.Bootstrap"
1234
$ kill 1234 # SIGTERM
$ sleep 5
$ kill -9 1234 # SIGKILL (最終手段)
# Tomcat の PID ファイル
$ cat /opt/tomcat/tomcat.pid 2>/dev/null
1234
# Java プロセス全部を kill (危険)
$ pkill -f catalina
関連記事
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
人気ページ
- 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 Spring Frameworkのアノテーション一覧
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- PHPでのファイルアップロード方法|multipart/form-dataと$_FILES 2026-08-07 17:15:57
- PHP $_SERVERとは|DOCUMENT_ROOT・PHP_SELFなど主な要素 2026-08-07 17:15:57
- Scratchのアカウントの作り方|メールアドレスとユーザー名の登録手順 2026-08-07 17:15:57
- djangoにおけるMVCアプリケーション実装例 2026-08-07 17:15:57
- Bluetoothとは|仕組み・BLEとClassicの違い・用途 2026-08-07 17:15:57
- Spring Bootのテスト入門|@SpringBootTestとJUnitでの単体・結合テスト 2026-08-07 17:15:57
- APIキー取得方法 2026-08-07 17:15:56
- インストール方法(Windows版) 2026-08-07 17:15:56
- Java とは?言語仕様・JVM・主要フレームワーク一覧 2026-08-07 17:15:56
- 【PHPフレームワーク】Laravelの使い方 2026-08-07 17:15:56
- Scratch 作品の公開方法 2026-08-07 17:15:56
- Google OAuth 2.0 認証の実装方法 2026-08-07 17:15:56
- データベースとは?RDB / NoSQL / SQL の基礎 2026-08-07 17:15:56
- インストール(eclipseプラグイン) 2026-08-07 17:15:56
- Spring Frameworkの使い方 2026-08-07 17:15:56
コメントを削除してもよろしいでしょうか?