Jak wybrać między uruchomieniem, uruchomieniem, superwizorem, daemontools itp. W celu zrestartowania procesu, jeśli on umrze?


13

Mam internetowy serwer proxy Nginx, serwer WWW gunicorn oraz aplikację sieci web python / flask. Proces Gunicorn najwyraźniej umarł i chcę to poprawić w przyszłości, szukając narzędzia, które może monitorować i ponownie uruchamiać proces Gunicorn w przypadku jego ponownego awarii.

Znalazłem kilka, które mogą wykonać tę pracę:

  • dorobkiewicz
  • Uruchom
  • kierownik
  • daemontools
  • wiele więcej

Czy istnieje obszerny artykuł, który porównuje i kontrastuje różne narzędzia używane do monitorowania i ponownego uruchamiania procesu?


2
Powinieneś naprawdę monitorować te usługi z zewnątrz, ponieważ pojawią się sytuacje , w których przejdziesz do pętli restartu i zużyjesz wszystkie dostępne zasoby na serwerze.
EEAA,

Napisz własny kod, aby zrobić to dokładnie tak, jak chcesz. To łatwe zadanie.
Ryan Babchishin

Odpowiedzi:


3
  • runitjest następcą daemontools(oba są zapisane c)

  • supervisordwykorzystuje python.

Używam runitz socklogtego samego autora wewnątrz Alpine Linux lxc pojemników na około 10 miesięcy do zarządzania web/ databasei różne inne usługi. Jest lekki, łatwy w zarządzaniu i nie miałem żadnych awarii usług. Demon rejestrujący działa również jako własny użytkownik, a to nie rootjest miłe.

voidlinux korzysta runitz initsystemu, a także do nadzoru usług (w drzewie pakietów wyszukaj runpliki, aby znaleźć przykłady runitskryptów).


2

Jeśli twoja dystrybucja używa Upstart, idź z nią. Ma bardzo podstawową obsługę ponownego uruchamiania zadania, ale zawiera ograniczenia, które mogą zapobiec pętli ponownego uruchomienia, jak wspomniano w @EEAA.

Jeśli twój system operacyjny korzysta z innego programu inicjującego, nie zmieniaj go. Naprawdę nie mogę ci pomóc z innymi narzędziami, o których wspomniałeś, ponieważ ogólnie używam Ubuntu, gdzie Upstart jest nadal obecny (od najnowszego LTS), więc nie mam z nimi nic wspólnego. Ale nie jest to trudne zadanie, aby utworzyć prosty skrypt uruchamiany z crona raz na minutę (lub częściej np. W pętli), który może sprawdzić, czy istnieje PID i uruchomić ponownie po awarii.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.