2011-09-15 14 views
10

Mam demona, który działa za pomocą zwykłych skryptów init.d/service.Monit - zatrzymaj usługę i zatrzymaj się?

Mam uruchomiony monit, który zapewnia ponowne uruchomienie tych demonów w razie awarii.

Mam prośbę, aby "service foo stop" zatrzymał demona, a ponieważ został jawnie zatrzymany, a nie awarię, monit nie powinien go restartować. Jak mogę to osiągnąć za pomocą monitora?

Mogę mieć wywołanie skryptu usługi stop() "monit unmonitor", ale wydaje się to błędne i okrągłe.

Dzięki Dave

Odpowiedz

23

myślę, że należy użyć monit stop foo zamiast service foo stop. W ten sposób Monit jest świadomy, że usługa nie uległa awarii - i nie uruchomi go ponownie.

+1

To powinno być zaakceptowane jako odpowiedź. – brupm

1

Model jest: Monit działa jako usługa przez init.d i dlatego sterowany (stop/start/restart) przez init.d. (Inne, proszę, jeśli się mylę). Aplikacje wymagające monitorowania obsługiwane są przez monit.

Z tego powodu takie aplikacje powinny być kontrolowane, tzn. Zatrzymywanie/uruchamianie/restartowanie za pomocą monitora. Monit

2

Jest MODE param za to:

Monit obsługuje trzy tryby monitorowania za usługę: aktywne, pasywne i podręcznik.

Składnia:

TRYB W trybie aktywnym (domyślnie), Monit będzie aktywnie monitorować usługi oraz w przypadku problemów podnieść powiadomienia i/lub ponownie uruchomić usługę.

W trybie pasywnym Monit będzie biernie monitorować usługę i będzie zgłaszał alerty, ale nie będzie próbował rozwiązać problemu poprzez uruchomienie, zatrzymanie lub ponowne uruchomienie.

W trybie ręcznym Monit wejdzie w tryb aktywny tylko wtedy, gdy serwis został uruchomiony poprzez Monit

stąd: https://mmonit.com/monit/documentation/monit.html#SERVICE-MONITORING-MODE

W ten sposób, jeśli uda usług za pośrednictwem runit lub dorobkiewicz i po prostu chcą korzystać monitowanie alertów i pulpitów po prostu ustawionych dla wszystkich takich usług mode na passive.

Na przykład:

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 

Jeśli potrzebujesz, aby włączyć/wyłączyć tę online, ale nie na stałe - zapoznaj się z odpowiedziami innych ludzi, są w porządku.