pm2をインストール
$ sudo npm install -g pm2
サンプルプロジェクトを作成
$ mkdir hello-pm2 && cd hello-pm2 $ touch package.json $ touch server.js
package.json
{
"name": "hello-pm2",
"description": "pm2 test app",
"version": "0.0.1",
"private": true,
"dependencies": {
"express": "3.x"
}
}server.json
/* jshint undef: false, unused: false */
var express = require('express');
app = express();
app.get('/', function (req, res) {
// raise ReferenceError intentionally.
setTimeout((function () {
res.send(item);
}), 1000);
var body = "" + new Date().getTime();
res.setHeader('Content-Type', 'text/plain');
res.setHeader('Content-Length', Buffer.byteLength(body));
res.end(body);
});
app.listen(3000);
console.log('Express app started on port 3000');必要モジュールをインストール
$ npm install
pm2でデーモン化
$ pm2 start server.js --name myappserver.js を起動しています。--name を指定することでプロセス名 "myapp" をプロセス・リストに登録しています。
さて、ここで http://localhost:3000/ へ何度かアクセスしてみましょう。本来ならアクセス1秒後に server.js の res.send(item) の行で ReferenceError が発生してプロセスが落ちるはずですが、pm2を使ったことでプロセスがデーモン化して生き続けることができます。
プロセスリストを表示
$ pm2 list
ログを表示
$ pm2 logs
プロセスを停止
$ pm2 stop myapp
プロセスリストから削除
$ pm2 delete myapp
0 件のコメント:
コメントを投稿