はじめに
Amazon Linux 2でSpring Bootをアプリケーションとして登録して起動できるようにしてみました。基本的には公式のドキュメントをそのまま実施しています。
前提
- AmazonLinux2にJDK導入済み
- Gradle
- SpringBoot2
Gradleの設定
サービスとして登録できるようにするための設定を加えます。
bootJar { launchScript() }
jarファイルの生成
以下のコマンドを実施すると./build/libsにjarファイルが生成されます。
生成したファイルをAmazonLinux2の任意のフォルダにコピーします。
gradle bootJar
Amazon Linux2にサービスとして登録
サービスの登録方法としてSystem Vとsystemdで方法が異なります。
Amazon Linux 2ではsystemdが採用されているので、systemdにサービスを登録していきます。サービス名.service というファイルを /usr/lib/systemd/system に配置します。
[Unit] Description=${サービス名} After=syslog.target [Service] User=${起動するユーザ名} ExecStart=${jarファイルのパス} SuccessExitStatus=143 [Install] WantedBy=multi-user.target
サービスの起動
変更を加えたのでリロードした後に起動します。
# 変更を加えたのでリロード systemctl daemon-reload # サービスの起動 systemctl start ${サービス名}
まとめ
初めてSpringBootを使ったときは自前の起動スクリプトを用意していたりして、大変でした。サービスに登録できる機能があると便利ですね。