2011-09-15 8 views
10

私は通常のinit.d/serviceスクリプトで動作するデーモンを持っています。Monit - stopサービスと滞在を停止しましたか?

これらのデーモンがクラッシュした場合に再起動されるように、私はmonitを実行しています。

私は、 'service foo stop'はデーモンを停止する必要があり、クラッシュではなく明示的に停止されているため、再起動しないようにしてください。どのように私はmonitでこれを達成することができますか?

私はサービススクリプトのstop()ルーチン呼び出し 'monit unmonitor'を持つことができましたが、これは循環的で間違っているようです。

おかげで、 デイブ

答えて

23

私はあなたの代わりにservice foo stopmonit stop fooを使うべきだと思います。そのようにして、Monitはサービスがクラッシュしなかったことを認識しており、再起動しません。

+1

これは答えとして受け入れられるべきです。 – brupm

1

モデルは です。Monitはinit.dによってサービスとして実行されるため、init.dによって制御されます(停止/開始/再開)。 (私が間違っている場合は、他の人にお願いしてください)。 監視が必要なアプリケーションは、monitによって処理されます。

したがって、このようなアプリケーションは、monitを介して停止/開始/再起動するように制御する必要があります。 MONIT

2

はそのためMODEのparamがあります:アクティブ、パッシブおよびマニュアル:

MONITは、サービスごとに3つの監視モードをサポートしています。

構文:アクティブモード(デフォルト)では

MODE 、MONITは、積極的にサービスを監視し、問題が発生した場合にアラートを生成および/またはサービスを再起動します。

パッシブモードでは、Monitはサービスを受動的に監視し、アラートを発生させますが、起動、停止または再起動を実行して問題を修正しようとはしません。マニュアルモードでは

、MONITサービスはここからMONIT

経由

を起動した場合にのみ、アクティブ・モードに入ります:https://mmonit.com/monit/documentation/monit.html#SERVICE-MONITORING-MODE

あなたが値Runitや成り上がりを経由してサービスを管理し、ちょうど使用したい場合は、この方法すべてのそのようなサービスのために設定したアラートとダッシュボードのためのmonit。modepassive。例えば

check process heka with pidfile /etc/sv/myservice/supervise/pid 
    start program = "/usr/bin/sv start myservice" 
    stop program = "/usr/bin/sv stop myservice" 
    mode passive 

あなたが/可能にするオンラインを無効にではなく、永続的にする必要がある場合 - 他の人の答えを参照してください、彼らは罰金です。

関連する問題