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.
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
@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