foreverを使ってみた。

EC2 で稼働させる、nodejs アプリを常駐化させるための手段として、
forever を使うことにしました。そんなメモです。

目次

インストール

Readme に従って
npm i forever -gforeverをインストール。
必要によってsudoをつけましょう。

使い方

基本的に使うのは、以下の 3 コマンドで OK

  • 開始   forever start [実行するjsファイル名]
  • 状況確認 forever list
  • 終了   forever stop [インデックス]
    終了については複数の対象指定方法があるが、ここでは簡単のため紹介は一つにします。

とりあえず、以下の HelloWord する Web サーバーを app.js として保存します。

app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
let http = require("http");
let server = http.createServer();
let port = 3001;

server.on("request", (req, res) => {
console.log("Access!");
res.writeHead(200, { "Content-Type": "text/plain" });
res.write("hello world!");
res.end();
});

server.listen(port);
console.log(`Listen port ${port}`);

forever start app.jsで実行できます。
ブラウザで http://localhost:3001/にアクセスすると HelooWorld!が返ってきます。

確認は、forever list

1
2
3
info:    Forever processes running
data: uid command script forever pid id logfile uptime
data: [0] 8Kr8 "C:\***\node.exe" C:\***\app.js 7744 12800 C:\***\.forever\8Kr8.log 0:0:11:28.208

app.js が実行されていることが確認できます。
forever listで表示される[0]の部分を使って停止をします。

forever stop 0で forever で実行した app.js を停止できます。
実行すると以下のような表示に

1
2
3
4
info:    Forever stopped process:
uid command script forever pid id logfile uptime
[0] 8Kr8 "C:\***\node.exe" C:\***\app.js 7744 12800 C:\***\.forever\8Kr8.log 0:0:18:49.678

forever listをもう一度実行すると、app.js が動作していないことがわかります。

1
info:    No forever processes running

ブラウザで http://localhost:3001/にアクセスしても何も返ってきません。

今回は EC2 で動かす WEBAPI 部分に使うと思っていたけど、
他にもうまく使えるかもと思い勉強になりました。

役に立つ人がいたら、何よりです。

ではでは。