Help us understand the problem. What is going on with this article?

Node.js 自動再起動モジュール

More than 5 years have passed since last update.

Node.js 自動再起動モジュールのまとめ

シンプルなプロセス管理ツール系

 ファイルの変更を監視し、変更があるとサーバの再起動をかける

node-dev、hotnode、alwaysなど

  • 起動
>モジュール名 app.js
例) node-dev app.js

高機能プロセス管理モジュール

 ファイル監視のみでなく、ログ管理やモジュール管理機能などを持っている

forever

  • 起動
> forever start app.js
  • 実行中スクリプトの表示
> forever list
  • 実行中スクリプトの停止や再起動
> forever stop
> forever stopall
> forever restart
  • アクション
start               Start SCRIPT as a daemon
stop                Stop the daemon SCRIPT
stopall             Stop all running forever scripts
restart             Restart the daemon SCRIPT
list                List all running forever scripts
config              Lists all forever user configuration
set <key> <val>     Sets the specified forever config <key>
clear <key>         Clears the specified forever config <key>
logs                Lists log files for all forever processes
logs <script|index> Tails the logs for <script|index>
columns add <col>   Adds the specified column to the output in `forever list`
columns rm <col>    Removed the specified column from the output in `forever list`
columns set <cols>  Set all columns for the output in `forever list`
cleanlogs           [CAREFUL] Deletes all historical forever log files
  • オプション
-m  MAX          Only run the specified script MAX times スクリプトの起動回数制限 
-l  LOGFILE      Logs the forever output to LOGFILE foevert本体のログ
-o  OUTFILE      Logs stdout from child script to OUTFILE 子スクリプト標準出力のログ 
-e  ERRFILE      Logs stderr from child script to ERRFILE 子スクリプト標準エラー出力のログ 
-p  PATH         Base path for all forever related files (pid files, etc.)
-c  COMMAND      COMMAND to execute (defaults to node) 実行するコマンド(デフォルトはnode)
-a, --append     Append logs ログを追記する 
--pidfile        The pid file
--sourceDir      The source directory for which SCRIPT is relative to
--minUptime      Minimum uptime (millis) for a script to not be considered "spinning" 最低使用時間(ミリ秒)
--spinSleepTime  Time to wait (millis) between launches of a spinning script. 実行中スクリプトの起動待ち時間
--plain          Disable command line colors
-d, --debug      Forces forever to log debug output
-v, --verbose    Turns on the verbose messages from Forever
-s, --silent     stdout/stderrへの出力を抑制する Run the child script silencing stdout and stderr
-w, --watch      Watch for file changes ファイル変更を監視する 
-h, --help       You're staring at it

node.jsスクリプトをforeverでデーモン化する
さくらVPSにforeverをインストールしNode.jsスクリプトをデーモン化

pm2

foreverに比べ、CPUに合わせてクラスタリングする機能などが追加されている

【Node.js】foreverより高機能なpm2でデーモン化
Goodbye node-forever, hello PM2

その他

up

他のモジュールとは違い再起動しないで変更を反映する
ただし、性能が若干劣化する

  • 起動
> up --watch --port 3000 app.js

Smashing Node.js に書いてあるEffective Node.jsなこと(第二弾)

 比較

node-dev hotnode always forever pm2 up
自動再起動 △※1

※1 再起動は行わないが変更内容は反映される

機能的には、node-dev、hotnode、alwaysはシンプルで、forever、pm2は高機能。
ローカル環境でファイルの修正を監視してサーバの再起動をかけるだけなら前者で十分。
後者はどちらかと言うと、本番環境向き。

disc99
asoview
asoview!(アソビュー)は日本全国のレジャー、体験、遊びが集まる日本最大級のレジャー・体験予約サイトです。「週末どこに行こう?旅先で何して遊ぼう?」というちょっとした不便を解決すべく、いろいろな情報を発信しています。
https://www.asoview.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした