はじめに
AWS EC2にて、Node.jsを使って自作したWebアプリケーションをデプロイすることは成功したのですが、
ターミナルを落とす(切断する)と、そのアプリケーションが稼働停止します。
ターミナルを落としても稼働し続けられるようには『デーモン化』という処理を行う必要があるようです。
そこで、私が行ったEC2におけるデーモン化処理について書いていきます。
この記事でわかること
- Node.js + EC2でのデーモン化
- foreverライブラリの導入方法
- foreverライブラリの使い方(start, stop, list)
実行環境
- AWS EC2 (Amazon Linux2 AMI)
- Apache 2.4.46
- Node.js 12.19.0
- forever v3.0.2
解決方法
foreverライブラリのインストール
下記コマンドにてインストールするとともに、
正常にインストールされたかどうかを確認します。
$ npm install -g forever
$ forever --version
v3.0.2
foreverを用いたアプリケーションの実行
本来であれば app.js を実行するとき、$ node app.js
と入力するのですが、
これではターミナルを落としたときに、実行も終了されてしまいます。
foreverライブラリを用いてデーモン化するときは、
$ forever start app.js
と入力し、実行します。
$ forever start app.js
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info: Forever processing file: app.js
foreverを用いたアプリケーションの実行を終了する
foreverの実行状況を$ forever list
コマンドによって確認します。
実行したアプリケーションに対して、5ケタのIDが設定されているので、それをメモしておきます。
次にforever stop
コマンドによって実行を終了します。
$ forever stop [yourNumber]
info: Forever stopped process:
// 以下略
実行が終了されていることを確認します。
$ forever list
info: No forever processes running