Amazon Linux Spring Boot Jarファイルをサービスとして登録
今回試した環境は以下
- Spring Boot
- Kotlin
- Gradle
- EC2(Amazon Linux)
1.jarをサービスとして登録できるようにbuild.gradleに以下を追加
build.gradle.kts
tasks.getByName<BootJar>("bootJar") {
launchScript()
}
2.jarファイル生成
gradle bootJar
3.jarファイルをサーバーにアップロード
# 手順2の実行後jarファイルが生成されていることを確認
# xxx.jarが生成されていればOK
ls -la ./build/libs/
# 対象のサーバにjarファイルアップロード(ipやpemは各環境に合わせて書き換える)
# ユーザはEC2を使っているので今回はec2-userを利用しています
sftp -i ~/.ssh/xxx.pem [email protected]
put ./build/libs/xxx.jar
4. jarファイルが実行可能か確認
# サーバにssh接続
ssh -i ~/.ssh/xxx.pem [email protected]
# 実行してみる
# 問題なく起動できればプロセスレベルで起動できるところまで確認OK
java -jar xxx.jar
5.実行時に渡すパラメータを記載したファイルを作成
ファイル名はjarファイルと同じにし拡張子をconfにする。
以下は実行時のプロファイルを指定する例
xxx.conf
RUN_ARGS="--spring.profiles.active=prod"
5.サービス登録するためのファイルを作成
# xxxはservice名
sudo vi /usr/lib/systemd/system/xxx.service
xxx.service
[Unit]
# xxxはサービス名
Description=xxx
After=syslog.target
[Service]
Type=simple
User=ec2-user
Group =ec2-user
# xxxは設置したjarのファイルパス
ExecStart=/home/ec2-user/xxx.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
6.サービスを開始
# 変更を読み込む
systemctl daemon-reload
# サービスとして登録されていることを確認
systemctl status xxx.service
# サービス開始
sudo systemctl start xxx.service
# 確認
systemctl status xxx.service
ps aux | grep java
# 上記手順でうまくいかない時はログをみる
# /var/log/messageを確認する
# permissionエラーが出てしまっている時は、 xxx.jarの権限を確認する 744とかで実行権限がついていればOK。
Author And Source
この問題について(Amazon Linux Spring Boot Jarファイルをサービスとして登録), 我々は、より多くの情報をここで見つけました https://qiita.com/yukiyoshimura/items/a687fa251c50638d8fab著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .