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 件のコメント:
コメントを投稿