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

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

ただいまの
回答率

88.91%

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

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 246

kachikata96

score 27

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • take88

    2020/07/08 17: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 17: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 20:22

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

    キャンセル

回答 1

checkベストアンサー

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/08 20:22

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

    キャンセル

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

  • ただいまの回答率 88.91%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る