0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

作成したアプリをサーバーで自動起動する

Posted at

作成したアプリをサーバーで自動起動する

ローカルにて作成したアプリを実際にAWSのEC2へデプロイし、動作検証をした際に躓いたので備忘録として。

問題

git cloneしてプログラムアップ
yarn install
yarn build
よし、本番サーバー起動

node .output/server/index.mjs &
Listening http://[::]:3000

ばっちり!
ブラウザからも表示できた!
めでたしめでたし....

念のためターミナル落としてもう一度確認....

image.png
※Nginxからのリバースプロキシで動いています。

SSHの接続を切ってしまうとサーバーも止まってしまうといった問題に直面。

以下を参考にデーモン化することにする
【Linux】Node.jsをSystemdに登録しデーモン化する

ユニットファイルの作成

/etc/systemd/system
にユニットファイルを作成し、設定値を記述

[Unit]
#systemctl status にて表示される
Description= Nuxt3 hogeapp

[Service]
Type=simple
#実行ユーザー
User=ec2-user
#ライブラリなどあれば
WorkingDirectory=/var/www/html/hogeapp
#起動時コマンド
ExecStart=node /var/www/html/hogeapp/.output/server/index.mjs
#終了時コマンド
ExecStop=/usr/bin/pkill -e node
Restart=always
RestartSec=2
StandardOutput=syslog
StandardError=syslog
#実行サービス名
SyslogIdentifier=hogeapp

[Install]
WantedBy=multi-user.target

保存して、サービス一覧に存在するか確認

systemctl list-unit-files --type=service | grep hogeapp
hogeapp.service                      disabled        disabled

状態を確認

systemctl status hogeapp
○ animalapp.service - Nuxt3 hogeapp
     Loaded: loaded (/etc/systemd/system/hogeapp.service; disabled; preset: disabled)
     Active: inactive (dead)

Activeがinactive (dead)となっており未起動状態

開始

systemctl start hogeapp

開始できたか確認

systemctl status hogeapp
● hogeapp.service - Nuxt3 hogeapp
     Loaded: loaded (/etc/systemd/system/hogeapp.service; disabled; preset: disabled)
     Active: active (running) since Tue 2023-09-12 02:18:48 UTC; 14s ago
   Main PID: 4353 (node)
      Tasks: 11 (limit: 1114)
     Memory: 15.4M
        CPU: 459ms
     CGroup: /system.slice/hogeapp.service
             └─4353 node /var/www/html/hoge-tool-nuxt/.output/server/index.mjs

Sep 12 02:18:48 ip-10-0-2-96.ap-northeast-1.compute.internal systemd[1]: /etc/systemd/system/hogeapp.service:12: Standard output type syslog is obsolete,>
Sep 12 02:18:48 ip-10-0-2-96.ap-northeast-1.compute.internal systemd[1]: /etc/systemd/system/hogeapp.service:13: Standard output type syslog is obsolete,>
Sep 12 02:18:48 ip-10-0-2-96.ap-northeast-1.compute.internal systemd[1]: Started hogeapp.service - Nuxt3 hogeapp.
Sep 12 02:18:49 ip-10-0-2-96.ap-northeast-1.compute.internal hogeapp[4353]: Listening http://[::]:3000

Activeがactive(runnig)となった

動作確認

先ほどNginxのエラー画面だったブラウザを再読み込みしてみると画面が正しく表示された。

次にターミナルを切断してもう一度再読み込みしてみる。

問題なく表示することができた。

自動起動設定

インスタンスを再起動させても自動で起動してくれるように設定

systemctl enable hogeapp
Created symlink /etc/systemd/system/multi-user.target.wants/hogeapp.service → /etc/systemd/system/hogelapp.service.

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?