web-dev-qa-db-ja.com

node.jsサービスを開始する正しい方法は何ですか?

CentOS 6でnode.jsサービス( statsd )を実行しています。このようなサービスをデーモン化して開始する適切な方法は何ですか?

潜在的なデーモン化-デーモン化は言語固有または一般的であると想定されていますか?:

  • 永久 (ノード固有)
  • デーモン化
  • Nohup (おそらく間違っています)
  • start-stop-daemon (debian-only?これはデーモン化または開始/停止用ですか?Centosと同等のものは何ですか?)
  • アプリ自体がそれ自体をデーモン化する方法を本当に知っている必要があり、次に-d 国旗? (例: node-daemonize2 または forever-monitor ?)

サービススターター-これらはシステム/ディストリビューションからのものである必要がありますか、それともmonitなどの監視ツールからのものである必要がありますか?:

残念ながら、私はこれに不慣れです。これを行うための最も標準的で、古典的で、信頼できる方法をどこで読むことができますか?

6
elliot42

アプリ自体が自分自身をデーモン化する方法を本当に知っている必要があります...

アプリをデーモンとして実行することを意図している場合は、はい、それ自体をデーモン化し、適切なファイルを書き込み(ログとPIDが頭に浮かぶ)、シグナルを処理する方法を完全に認識している必要があります。そうでない場合は大きなWTF。

アプリが実際にデーモン化されることを意図していない場合、またはそれが主な目的ではない場合、それは完全にあなたの決定です。他の人が簡単に利用できるようにしたい場合は、おそらく追加します。自分の生活を楽にしたいのなら、おそらくそれを省くでしょう。人々は一般的にどちらの方法でも「WTF」応答をしません。

サービススターター...

各ディストリビューションのパッケージ/ポートシステムあるべき特定のニーズを満たすために汎用の開始/停止スクリプトを変更する責任があります。これは一般的にロケット科学ではありませんが、疑問がある場合は、作業中のディストロについてメンテナに連絡してください。

監視ツール。

Distroの公式の開始/停止メカニズムと対話する方法を知っている必要があり、プログラムと具体的に対話する方法を知らない必要があります(プログラムがレポートメカニズムを介してデータを「公開」しない限り、SNMPサービスなどのフックを含む可能性があります。すべてこれは本当にあなたのプログラムが何をするかに依存します)。

3
Chris S