Linux上の Tomcat をサービスとして登録し自動起動させる方法

Tomcat を OS に合わせて自動起動させる方法です。

Tomcat は手動でも起動・停止するこが出来ますが、手動で実施していては運用が大変なので自動起動させるのが一般的です。

Spring Boot でアプリケーションを作成すれば Tomcat を内蔵することも出来るので、Tomcat内臓Spring Bootアプリ を自動起動する方が編集箇所・確認箇所が少なく、運用が簡単で確実なのでおススメです。

しかし、何かしらの制約があり Tomcat単体 で扱うこともあるため、その際にこれらの設定が必要になります。

なお、Tomcat のインストールがまだの場合は、自動起動設定の前に次の記事を参考にインストールしましょう。

Tomcat9のインストール方法 on Linux系OS
Linux系OS へ Tomcat9 をインストールする方法をご紹介します。当記事は Tomcat9系、Red Hat7系 で検証しました。...

サービスファイル作成

それでは自動起動設定です。サービス /etc/systemd/system/tomcat.service を作成して、次のように記載します。

[Unit]
Description=Apache Tomcat 9
After=network.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/usr/local/tomcat/tomcat.pid
RemainAfterExit=yes

ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
ExecReStart=/usr/local/tomcat/bin/shutdown.sh;/usr/local/tomcat/bin/startup.sh

[Install]
WantedBy=multi-user.target

Tomcat の場所はそれぞれの環境に合わせて記載します。

サービス有効化・無効化

サービスを有効化します。

# systemctl enable tomcat.service

有効化されたか確認します。

# systemctl list-unit-files --type=service | grep tomcat

これで enabled がレスポンスで返ってくればサービスが有効化されています。disable になっていればサービスが有効になっていません。

サービスを無効にしたい場合、次のコマンドを実行します。

# systemctl disable tomcat.service

上記の確認コマンドでdisable が返却されるはずです。

サービス起動・停止

次のサービスが起動されているかを確認します。

# systemctl list-units --all --type=service | grep tomcat

これで active が返却されれば起動しています。

起動・停止は OS が自動で実施してくれますが、メンテナンス時など手動で実施したいときには次のとおりコマンドを実行します。それぞれ起動・停止・再起動です。

# systemctl start tomcat
# systemctl stop tomcat
# systemctl restart tomcat

これで自動で Tomcat が OS と共に起動されるようになります。