学習の一環として、eclipse2019.4.14、Java1.8、SpringBoot(2.0.4.RELEASE)、MySQL5.7による開発を行っております。
サーバーはAWSのEC2(OSはAmazonLinux2)を使用しています。
データベースはAWSの学習も兼ねてRDSを使います。
最終的にはデータベースも利用した動的webページをweb上に公開したいと思っています。
現在、SpringアプリケーションをjarファイルにしてEC2にデプロイし起動させることでwebページを公開するところまでできるようになりました。
しかし、SSH接続を切るとアプリケーションが停止し常にweb上に公開し続けられないことに気づきました。
常にアプリケーションを起動させ続けるにはアプリケーションをデーモンかしてバックグラウンドで常に起動状態する必要があることがわかりました。
なのでこちらの記事をもとにデーモン化をしてみました。↓
https://qiita.com/uenosy/items/19829f0e212ac81e0044
一通り設定をし"systemctl start アプリケーション名"で起動するとエラーが表示されなかったので
デーモン化には成功していると思いますが、
"systemctl stuts アプリケーション名"で状態を見てみるとfailedになっていました。
これは何か設定が足りなかったのでしょうか?
# systemctl status SpringSample-0.0.1-SNAPSHOT.service -l ● SpringSample-0.0.1-SNAPSHOT.service - SpringSample-0.0.1-SNAPSHOT Loaded: loaded (/etc/systemd/system/SpringSample-0.0.1-SNAPSHOT.service; disabled; vendor preset: disabled) Active: failed (Result: start-limit) since Wed 2020-07-08 01:20:19 UTC; 1min 53s ago Process: 19889 ExecStart=/home/ec2-user/SpringSample-0.0.1-SNAPSHOT.jar (code=exited, status=203/EXEC) Main PID: 19889 (code=exited, status=203/EXEC) Jul 08 01:20:19 ip-172-00-11-46.ap-northeast-1.compute.internal systemd[1]: SpringSample-0.0.1-SNAPSHOT.service: main process exited, code=exited, status=203/EXEC Jul 08 01:20:19 ip-172-00-11-46.ap-northeast-1.compute.internal systemd[1]: Unit SpringSample-0.0.1-SNAPSHOT.service entered failed state. Jul 08 01:20:19 ip-172-00-11-46.ap-northeast-1.compute.internal systemd[1]: SpringSample-0.0.1-SNAPSHOT.service failed. Jul 08 01:20:19 ip-172-00-11-46.ap-northeast-1.compute.internal systemd[1]: SpringSample-0.0.1-SNAPSHOT.service holdoff time over, scheduling restart. Jul 08 01:20:19 ip-172-00-11-46.ap-northeast-1.compute.internal systemd[1]: start request repeated too quickly for SpringSample-0.0.1-SNAPSHOT.service Jul 08 01:20:19 ip-172-00-11-46.ap-northeast-1.compute.internal systemd[1]: Failed to start SpringSample-0.0.1-SNAPSHOT. Jul 08 01:20:19 ip-172-00-11-46.ap-northeast-1.compute.internal systemd[1]: Unit SpringSample-0.0.1-SNAPSHOT.service entered failed state. Jul 08 01:20:19 ip-172-00-11-46.ap-northeast-1.compute.internal systemd[1]: SpringSample-0.0.1-SNAPSHOT.service failed.
デーモン化でやったこと
サービス登録
vi /etc/systemd/system/SpringSample-0.0.1-SNAPSHOT.service [Unit] Description = SpringSample-0.0.1-SNAPSHOT After=syslog.target [Service] ExecStart = /home/ec2-user/SpringSample-0.0.1-SNAPSHOT.jar Restart = always Type = simple User = ec2-user Group = ec2-user SuccessExitStatus = 143 [Install] WantedBy = multi-user.target
反映
# systemctl daemon-reload
自動起動有効
# systemctl enable SpringSample-0.0.1-SNAPSHOT.service
回答1件
あなたの回答
tips
プレビュー