Nginx Webプロキシ、gunicorn Webサーバー、およびpython/flask Webアプリがあります。 Gunicornプロセスは明らかに停止しました。Gunicornプロセスが再びクラッシュした場合に監視および再起動できるユーティリティを調べることで、将来的にはそれを改善したいと考えています。
私は仕事をすることができるいくつかを見つけました:
プロセスの監視と再起動に使用されるさまざまなユーティリティを比較対照する包括的な記事はありますか?
runit
はdaemontools
の後継です(どちらもc
で作成されています)
supervisord
はpython
を使用します。
runit
とsocklog
を同じ作者が Alpine Linuxlxc
コンテナー内で約10か月間使用して、web
/database
などのさまざまなサービスを管理しています。軽量で管理が簡単で、サービス障害は発生していません。ロギングデーモンは、ニースであるroot
ではなく、自身のユーザーとしても実行されます。
voidlinux はrunit
システムと同様にinit
システムを使用し、さらに service supervision も使用します(run
スクリプトの例については、パッケージツリーでrunit
ファイルを検索してください)。
ディストリビューションでUpstartを使用している場合は、それを使用してください。ジョブの再起動は非常に基本的にサポートされていますが、@ EEAAで言及されているように、再起動ループを防止できる制限が含まれています。
OSが別のinitプログラムを使用している場合は、変更しないでください。私は通常、(最新のLTSの時点で)Upstartがまだ存在するUbuntuを使用しているので、あなたが言及した他のツールを実際に支援することはできません。しかし、PIDが存在するかどうかを確認し、失敗時に再起動を発行できるcronから1分に1回(またはループ内でより頻繁に)実行される単純なスクリプトを作成することは難しくありません。