16 Stimmen

Monit - Dienst anhalten und angehalten bleiben?

Ich habe einen Daemon, der über die üblichen init.d/Service-Skripte läuft.

Ich habe monit laufen, das sicherstellt, dass diese Daemons neu gestartet werden, wenn sie abstürzen.

Ich habe eine Anfrage, dass 'service foo stop' den Deamon stoppen soll, und weil er explizit gestoppt wurde und nicht abgestürzt ist, soll monit ihn nicht neu starten. Wie kann ich dies mit monit erreichen?

Ich könnte die stop()-Routine des Service-Skripts 'monit unmonitor' aufrufen lassen, aber das erscheint mir zirkulär und falsch.

Danke! Dave

30voto

jmonteiro Punkte 1643

Ich denke, Sie sollten die monit stop foo anstelle von service foo stop . Auf diese Weise weiß Monit, dass der Dienst nicht abgestürzt ist - und startet ihn nicht neu.

8voto

timurb Punkte 5174

Es gibt eine MODE param dafür:

Monit unterstützt drei Überwachungsmodi pro Dienst: aktiv, passiv und manuell.

Syntax:

MODE Im aktiven Modus (Standardeinstellung) überwacht Monit proaktiv einen Dienst und löst bei Problemen Warnungen aus und/oder startet den Dienst neu.

Im passiven Modus überwacht Monit einen Dienst passiv und gibt Warnungen aus, versucht aber nicht, ein Problem durch Starten, Stoppen oder Neustarten zu beheben.

Im manuellen Modus geht Monit nur dann in den aktiven Modus über, wenn ein Dienst über Monit gestartet wurde

Von hier aus: https://mmonit.com/monit/documentation/monit.html#SERVICE-MONITORING-MODE

Wenn Sie Dienste über Runit oder Uptart verwalten und Monit nur für Warnungen und Dashboards verwenden möchten, können Sie auf diese Weise einfach für alle diese Dienste festlegen mode a passive .

Zum Beispiel:

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

Wenn Sie diese Funktion online, aber nicht dauerhaft aktivieren/deaktivieren möchten, lesen Sie bitte die Antworten der anderen Teilnehmer, sie sind in Ordnung.

2voto

bobestm Punkte 1334

Das Modell ist: Monit läuft als Dienst von init.d und wird daher von init.d kontrolliert (stoppen/starten/neustarten) (andere, bitte, wenn ich falsch liege). Anwendungen, die überwacht werden müssen, werden von monit verwaltet.

Daher sollten solche Anwendungen nur über monit gesteuert werden, d.h. Stopp/Start/Neustart. monit

1voto

Arkhitech Punkte 465

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X