monit デーモンが停止するのを防ぐにはどうすればいいですか?

monit デーモンが停止するのを防ぐにはどうすればいいですか?

monit を使用してすべてが正常に実行されていることを確認しましたが、monit デーモンも停止しました。

これがどのように起こるのか、また monit デーモンが停止しないようにするにはどうすればよいのかわかりません。

答え1

Ubuntu 9.10では、/etc/inittabUbuntuは使用しているため存在しません成り上がり者の代わりに/sbin/initしたがって、上記の回答 1 と同じことを実現するには、upstart スクリプトが必要です。

# This is an event.d (upstart) script to keep monit running
# To install disable the old way of doing things:
#
#   /etc/init.d/monit stop && update-rc.d -f monit remove
#
# then put this script here: /etc/init/monit.conf
#
# You can manually start and stop monit like this:
# 
# start monit
# stop monit
#
# Karim Ratib (http://thereisamoduleforthat.com)
# 
# Based on monit.upstart (https://code.google.com/p/monit/source/browse/trunk/contrib/monit.upstart?r=132)
# by Michael Hale (http://halethegeek.com)

start on runlevel [2345]
stop on runlevel [06]

exec /usr/sbin/monit -Ic /etc/monit/monitrc
respawn

答え2

絶対に実行する必要があり、停止した場合に再起動しなければならないものに対して考えられる最善のオプションは、プロセスを init から実行することです。

次のようなエントリを入力します/etc/inittab:

名前:234:respawn:/usr/local/bin/daemon

次に、次のコマンドで init を再起動します。

初期化q

これでデーモンが死ぬたびに自動的に「復活」するようになります

編集:私はMonitについてよく知りませんが、たまたま彼らのFAQページ、そして彼らはこれをmonitのために具体的に詳しく説明しています。

答え3

monit ドキュメントより引用:http://mmonit.com/wiki/Monit/FAQ#init

Q: monit が予期せず終了した場合に再起動できるように、init から monit を実行するにはどうすればよいでしょうか?

A: init から Monit を実行する場合は、Monit バージョン 5 以降を使用することをお勧めします。

monits 構成ファイルで 'set init' ステートメントを使用するか、コマンド ラインから -I オプションを使用します。以下は、monit の /etc/inittab エントリのサンプルです。

 # Run monit in standard runlevels
 mo:2345:respawn:/usr/local/sbin/monit -Ic /etc/monitrc

inits 設定ファイルを変更した後、次のコマンドを実行してランレベルを再確認し、monit を起動できます。

 telinit q

監視ステータスを確認するには、Nagios/Icinga、Zabix、Sensu などの別の監視レイヤーをシナリオに追加することを検討する必要があります。

monit は死んでも復活できますが、monit が動作を停止してもデーモンがまだ生きている場合があり、その場合は復活がトリガーされません。

この時点で、監視の別のレイヤーを構成して、監視ステータスが利用できないことを警告する電子メールを送信し、問題を修正することができます。

関連情報