1

node.jsで作ったスクリプトをデーモン化させたい場合の方法についてです。
例えば、screenshot-as-a-serviceのようなプログラムをサーバーに常駐させたい場合の方法について。

Taizan Yonetuji
  • 2,846
  • 7
  • 32
  • 51

3 Answers3

3

foreverを使いましょう。
起動したnode.jsスクリプトの死活監視を行い、停止した場合は自動的に再起動します。

npm install forever -g
forever start spp.js

実行中のスクリプトの停止や再起動

forever stop
forever stopall
forever restart
Taizan Yonetuji
  • 2,846
  • 7
  • 32
  • 51
0

systemdのユニットファイルを作成してみるのはどうでしょうか?(当方node.jsはさっぱりなのですが)

0

pm2 を用いて管理するのが良いと思っています。理由は、 Node.js はクラスタリングモードを使うか使わないか、は言語レベルでサポートしていて、であるならば、それを吸収するフレームワークとして、 pm2 を使うのが妥当なのではないか、と思うからです。

pm2 のプロセス自身は、おそらく放っておいてもそいつが死んでしまうことはあまりなさそうな気はしますが、万全を期すならば、 @山田ハヤオ さんが仰る通り、 pm2 自身を systemd で OS レベルでデーモン化するのが良いのではないか、と思います。

Yuki Inoue
  • 16,805
  • 19
  • 80
  • 196