ブラック研究室へようこそ!

ブラック研究室。それは大学院生が放り込まれるかもしれない闇のアジト。在籍時代のエピソード・Web/アプリ開発の備忘録など。

【IT備忘録】リアルタイムお絵かきシステムを作ってみた④ 〜Node.jsのサーバプログラムをpm2でデーモン化〜

 

前回までで、リアルタイムお絵かきシステムができました。

www.blacklab-blog.net

 

f:id:blackLab:20180531214347j:plain

 

お〜、描けますね〜。

しかし、1つ気になることがあります。

それは、サーバプログラムを起動する時です。

 

前回までの説明ですと、server.jsを起動時、以下のシェルを打っていたかと思いますが、

このままだと、フォワードで実行されてしまい、SSHを切るとサーバプログラムが終了してしまいます。

# server.jsを起動
node server.js

 

そこで、サーバプログラムをデーモン化(常時起動)しましょう!

 

Node.jsのデーモン化ツール

Node.jsのデーモン化のためのツールがいくつか存在します。

僕が知っているものとして、以下2つがあります。

 

  • forever

   死活監視:○

   マルチコア対応:✕

  • pm2

   死活監視:○

   マルチコア対応:○

 

比較すると、pm2の方が優秀だと思います。

2つとも死活監視(サーバが落ちたことを検知して、自動で再立ち上げ)には対応しているのですが、決め手はマルチコア対応の観点。

pm2は、サーバのCPUのコア数に応じて、自動で複数プロセスで処理してくれます。

サーバ性能を考慮してくれるpm2は、まさに優れもの!

 

以下、参考記事です。

www.yoheim.net

 

pm2のインストール〜起動

インストールから起動まで、至って簡単です。

# pm2をインストール
sudo npm install pm2
# pm2でserver.jsのデーモン化開始
pm2 start server.js

 

あと、よく使うコマンドはこんなものでしょうか。

# 再起動
pm2 restart server.js
# デーモン停止
pm2 stop server.js
# ログやプロセスの確認
pm2 monit

 

では、また!!