質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

1回答

2429閲覧

Springアプリケーションをデーモン化して常に起動状態にしたい

kachikata96

総合スコア28

JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2020/07/08 02:44

編集2020/07/08 04:44

学習の一環として、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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

take88

2020/07/08 08:35

「ls -l /home/ec2-user/SpringSample-0.0.1-SNAPSHOT.jar」と 「head -5 /home/ec2-user/SpringSample-0.0.1-SNAPSHOT.jar」を実行して結果を教えてもらえますか?
kachikata96

2020/07/08 08:49

こうなりました。 ls -l /home/ec2-user/SpringSample-0.0.1-SNAPSHOT.jar -rw-r--r-- 1 ec2-user ec2-user 32057720 Jul 7 11:24 /home/ec2-user/SpringSample-0.0.1-SNAPSHOT.jar # head -5 /home/ec2-user/SpringSample-0.0.1-SNAPSHOT.jar #!/bin/bash # # . ____ _ __ _ _ # /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ # ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
kachikata96

2020/07/08 11:22

chmod 744 /home/ec2-user/SpringSample-0.0.1-SNAPSHOT.jarを実行したら うまくいきました。 ありがとうございます。
guest

回答1

0

ベストアンサー

ただのパーミッションエラー(実行権限なし or 読み込み権限なし)では?

投稿2020/07/08 05:21

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kachikata96

2020/07/08 11:22

権限を774にしたらうまくいきました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問