2017-12-15 1 views
0

Wir überwachen sidekiq Prozess über Monit. Sobald der sidekiq-Prozess den Speicher von etwa 2 GB erreicht, starten wir den Prozess neu. Wir haben Start-und Stop-Programm mit tiemout von 90 Sekunden definiert. Aber das Stop-Programm wird fehlgeschlagen (nach dem Warten auf das Timeout von 90 Sekunden).Wie Capture Monit Stop Programm fehlgeschlagen, wenn Monit den Prozess neu startet

Dies ist die Beispielmonitkonfiguration.

check process sidekiq 
    with pidfile /pathtopidfile 
    start program = "/bin/sh -c start sidekiq commmand" with timeout 90 seconds 
    stop program = "stop sidekiq command" with timeout 90 seconds 
    if totalmem is greater than 2GB for 3 cycles then restart 
    ***## I need have some condition like this -> if "stop_program failed" then "do some action"*** 
end 

P.S ich für die Aufnahme Stop-Programm kennen die korrekte Syntax nicht versagt in monit .. Ich überprüfte die monit Blogs, aber ich konnte es nicht.

+0

Hallo, ich glaube nicht, dass diese Funktion in Monit existiert. In der Regel behandeln die init/service/daemon-Skripte das Timeout und ergreifen entsprechende Maßnahmen. Neben der Anpassung Ihres Stop-Skripts an Zeitüberschreitung und Maßnahmen selbst, kann ich keine saubere Lösung auf Monit Ebene – TheCodeKiller

+0

@TheCodeKiller -> Vielen Dank für Ihre Kommentare. Ich habe den gleichen Weg gemacht, wie Sie vorgeschlagen haben, das Problem zu lösen. Ich habe das stop-Skript angepasst (erzwinge den sidekiq-Prozess, wenn er nicht innerhalb des Timeouts gestoppt wird.) – Karthy

Antwort

0

Ich denke, keine Optionen in Monit, um Fehler des Stopps oder Start-Programm zu erfassen. Also müssen wir diese Fehlerfälle in unserem jeweiligen Programm selbst behandeln. Sagen wir, wenn mein Stop-Programm fehlschlägt, muss ich herausfinden, warum es fehlgeschlagen ist, und entsprechende Aktionen im Stop-Programm selbst ausführen.

Mein ursprüngliches Problem war Sidekiq Prozess wird nicht innerhalb der Zeitüberschreitung getötet, so Stop-Programm wurde fehlgeschlagen. Um dies zu beheben, habe ich im Stop-Programm behandelt, dass, wenn der sidekiq-Prozess nicht innerhalb des Timeouts getötet wird, der Prozess hart beendet wird.

+0

Bitte benutze den Link zum Bearbeiten deiner Frage, um weitere Informationen hinzuzufügen. Die Schaltfläche Post-Antwort sollte nur für vollständige Antworten auf die Frage verwendet werden. - [Aus Bewertung] (/ review/low-quality-posts/18711012) – diceler

+0

Dies liefert keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag. - [Aus Bewertung] (/ review/low-quality-posts/18711012) –