プロセスが停止した場合、プロセスを再起動するために、upstart、runit、supervisor、daemontoolsなどを選択するにはどうすればよいですか?


13

Nginx Webプロキシ、gunicorn Webサーバー、およびpython / flask Webアプリがあります。Gunicornプロセスはどうやら死んだようです。また、将来クラッシュする場合にgunicornプロセスを監視および再起動できるユーティリティを検討することで、これを改善したいと考えています。

私は仕事をすることができるいくつかを見つけました:

  • 起業家
  • それを実行します
  • 監督者
  • デーモンツール
  • もっともっと

プロセスの監視と再起動に使用されるさまざまなユーティリティを比較対照する包括的な記事はありますか?


2
再起動ループに入り、サーバー上の利用可能なすべてのリソースを消費する状況発生するため、これらのサービスを外部から実際に監視する必要があります。
EEAA

独自のコードを作成して、希望どおりに実行してください。簡単な作業です。
ライアンバチシン

回答:


3
  • runitの後継daemontoolsです(両方ともで記述されていますc

  • supervisordを使用しpythonます。

私が使用してきたrunitとのsocklog内部の同じ著者によってアルパインのLinux lxc管理するために、約10ヶ月間のコンテナweb/ database&他のさまざまなサービスを提供しています。軽量で管理が簡単で、サービスの障害もありません。ロギングデーモンも独自のユーザーとして実行されますが、rootこれは素晴らしいことではありません。

voidlinuxrunitinitシステムとして&サービスの監視にも使用します(スクリプトのrun例については、ファイルのパッケージツリーを検索しますrunit)。


2

ディストリビューションでUpstartを使用している場合は、それを使用します。ジョブの再起動を非常に基本的にサポートしていますが、@ EEAAで述べられているように、再起動ループを防ぐことができる制限が含まれています。

OSが別の初期化プログラムを使用している場合は、変更しないでください。あなたが言及した他のツールについては私は本当に助けられません。私は通常、Upstartがまだ存在するUbuntuを使用しているので(最新のLTSの時点で)、それらとはほとんど関係がありません。ただし、cronから1分に1回(またはより頻繁にループで)実行される単純なスクリプトを作成するのは難しくありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.