web-dev-qa-db-ja.com

UNIXプロセスを監視するためのDaemontools(djbtools)の代替?

私は Daemontools を使用して、サーバー上のUnixサービスを監視するシンプルで信頼できる方法を提供しました。それはうまく機能しますが、異なる考え方( The DJB Way )が必要であり、いくつかの一般的な不満があります:

  • TAI64N ベースのタイムスタンプ
  • /etc/init.d(または(/usr/local)/etc/rc.d)にスクリプトを保存しません
  • Apachectlのようなスクリプトで常に機能するとは限りません。一部のスクリプトは書き直す必要があります。

2年ほど前に同様の「スーパーバイザ/ウォッチドッグ」デーモンがいくつか動作していたことを覚えていますが、一部はまだまだ端が荒れていました。

Daemontoolsから他のツールに切り替えた場合、何を選択し、うまく機能しましたか? RedHatまたはUbuntuには、デフォルトでプロセス監視ユーティリティが付属していますか?

26

Hrm、Ubuntuを使用している場合、その新しいinitプロセス pstart には、プロセス監視のレベルが含まれています。サービスの標準的な開始と停止、SysV initスクリプトに使用できます。また、実行中のアプリケーションを監視し、アプリケーションが停止した場合に再起動することもできます。

また、ニーズに応じて、inittabを介して貧者のプロセスリスターターを実装することもできます。

プロセスを監視するために主に何かを探している場合、それが常に実行されていることを確認し、実行されていないときに再起動すると、私は restartd で幸運を手に入れました。残念ながら、私が知っている唯一のソースはDebianパッケージです。ただし、これは非常に小さく単純なアプリケーションであり、基本的には単一の.cファイルと.hファイルで、makeファイルが含まれています。 Red HatでDebianソースのtarballからコンパイルするのは簡単です(以前の仕事でRPMを作成しました)。

私が聞いたが使用されていない最後のオプションは Supervisor です。これは有望なツールのように見えますが、再起動は過去には十分に機能しており、私が必要としていることについては、まだそれを試す必要はありませんでした。

16

runitの+1。既存のデーモンツールの引数とオプションと互換性があり、デーモンツールよりも多くの機能と柔軟性を備えています。かなりきちんとしています。

しかし、あなたが言及したように、多くのツールには、Apache2ctl、ejabberdctl、poundctl、collectdなどの独自のコントロールバイナリが付属しています。ハックは存在しますが、提供されたツールを使用する方が良い場合があります。可能な実装。私は通常妥協し、ほとんどのサービスをrunitの監督下で実行しています。そして、他の人は簡単な方法を使用して実行することを許可することができます。

12
alcy

runit があります。 daemontoolsとの違いと類似点は何なのかは言えませんが、Berstein風のウェブサイトから判断すると、確かにBernsteinの影響があると思います。

4
Steven Monday

Fedoraはsystemdに切り替える準備ができているようです: http://0pointer.de/blog/projects/systemd.html

4
Mark Wagner

すでに述べたdaemonizeおよびdaemontoolsの代わりに、libslackパッケージの daemon コマンドがあります。

daemonは非常に構成可能であり、自動再起動、ロギング、pidfile処理などの面倒なデーモンのすべてに対応します。

4
nazu

supervisord があります

3
ptman

Libslackの daemon ツールもあり、Cで記述され、さまざまな(Unix)プラットフォームで利用できます。

それは非常に構成可能であり、自動再起動、ロギング、pidfile処理などの面倒なデーモンのすべてに注意を払っています。

3
chad

Ubuntuには pstart -についてはあまり詳しくありませんが、「スーパーバイザー」機能があることはわかっています。 Appleの launchd は別のオプションです(Wikipediaの記事には、「Startstart&RunIt」など、他にもたくさんのリストがある「参照」セクションがあります)。

それらのすべてに優れた点と独自の特別ブランドのubersuckがあります。「プロセススーパーバイザー」/「ウォッチドッグ」プログラムについて誰かが私に尋ねるときはいつでも、いつも同じ質問をします。なぜ必要なのですか?

2
voretaq7