Używam nadzorca (3.0A12) na Ubuntu 12.04, aby zarządzać pracownikami PHP Garmerb. Czasami robotnicy zostają złapani w dziwny stan, w którym używają ton CPU i RAM. Podczaswijam ten problem, myślałem, że będzie miło mieć przełożonego automatycznie zabijać i odświeżania pracowników czasami. Spojrzałem na http://supervisort.org/configuration.html Dokumentacja konfiguracji i nie wydaje się Zobacz wszelkie opcje, które umożliwiłyby to.

Czy ktoś wie, czy możliwe jest okresowo ponowne uruchomienie Supervisor

32
dm03514 24 wrzesień 2012, 22:51

3 odpowiedzi

Najlepsza odpowiedź

Pakiet superlance oferuje {X1}} Wtyczka dla przełożonego. memmon Monitoruje wykorzystanie pamięci dla programów pod kontrolą przełożonego.

Skonfigurujesz memmon jako Eventisor EventListener:

[eventlistener:memmon]
command=memmon -a 200MB
events=TICK_60

Powyższa konfiguracja ustawia Memmon do ponownego uruchomienia dowolny program w ramach kontroli nadzorcy, jeśli przekracza użycie pamięci 200 MB. Sprawdza co 60 sekund.

Możesz skonfigurować Mampron, aby monitorować określone programy lub grupy programów, ustawienia limitów dla każdego.

28
Martijn Pieters 24 wrzesień 2012, 19:39

Możesz użyć Crontab, aby przekazać polecenia bezpośrednio do SuperCompTL. Na przykład, co następuje ponownie uruchomić proces co 20 minut.

0,20,40 * * * * /path/to/supervisorctl restart [supervisor_process]
33
scum 27 lipiec 2013, 06:28

Jest rozwiązanie łatwego przełożonego. Zrób inny proces nadzorcy, który śpi przez odpowiedni czas, a następnie uruchamia procesy, które chcesz.

[program:my_program]
process_name = python something.py

[program:periodicrestarter]
command = sh -c "echo 'restart my_program' | supervisorctl;sleep 600"
; restarts all:
;command = sh -c "echo 'restart all' | supervisorctl;sleep 600"
autorestart = true
12
Connor 7 maj 2020, 19:32