upstartとSupervisordは同じものに使用されますか?


13

jvmベースのプロセスがいくつかあり、サーバーを再起動するたびに起動する必要があります。また、予期しないエラーなどが原因で停止する場合もあります。

問題に備えてUbuntu 12.04を実行しています。

サンプルのスタートアップスクリプトを見てきましたが、私はそのように傾いていますが、スタートアップやスーパーバイザーのようなものとの違いを理解したいと思います。

それらはまったく同じ目的で使用されていますか、または機能に違いがありますか?

回答:


12

違いは、upstartはinitの置換であるのに対して、supervisordはinitの置換であるということProcess Control Systemです。この説明は、監視サイトで行われます

launchd、daemontools、runitなどのプログラムの同じ目標のいくつかを共有しています。これらのプログラムの一部とは異なり、「プロセスID 1」としてinitの代わりとして実行することを意図していません。代わりに、プロジェクトまたは顧客に関連するプロセスを制御するために使用されることを意図しており、起動時に他のプログラムのように起動することを意味します。

これは、upstartedジョブファイルまたはsysV initスクリプトのいずれかを介して、upstarted自体がupstartによって起動されることを意味します。個人的には、次の理由から、単純なinitではなくプロセスマネージャを使用することを選択しました。

  1. サービスは適切にデーモン化されません
  2. サービスは停止することがわかっているため、監視と再起動が必要です

適切にデーモン化されていないプログラムの例は、stdoutとstderrを閉じずに、それらの場所にデータを書き込み続ける場合です。Supervisordは、その出力のロギングを処理できます。


よくわかりますが、完全に理解しているわけではありませんが、upstartは失敗した場合にプロセスを再起動できると考えました。
ブランクマン

@Blankman最新の初期化システムにはさらに理由が少ないと思います
ヨルダン

適切にデーモン化されないサービスの適切な解決策は、適切にデーモン化されない原因となったサービスのバグを修正することです。ただし、supervisordのようなものが#2に役立つことを認めます。
シャドゥール

1
@shadurそれが最善の解決策であることに同意しません。プロセスが所有者ではない可能性があるため、修正することはできません。修正できたとしても、修正したバグの数に関係なく、これ以上潜んでいないことは決してわかりません。異常なネットワークまたはデータベースの状態など。あなたのサイトがオフラインのままで、ユーザーをイライラさせ、お金がかかることを望みますか?いいえ。サービスを再起動するにはツールが必要です。限目。
ジョナサンハートリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.