Come posso scegliere tra upstart, runit, supervisore, daemontools, ecc. Per riavviare un processo se muore?


13

Ho un proxy Web Nginx, un server web Gunicorn e un'app Web Python / Flask. Apparentemente il processo di Gunicorn è morto e voglio migliorarlo in futuro esaminando un'utilità in grado di monitorare e riavviare il processo di Gunicorn nel caso in cui si blocchi nuovamente.

Ne ho trovati diversi che possono fare il lavoro:

  • parvenu
  • eseguirlo
  • supervisore
  • strumenti del demonio
  • molti altri

Esiste un articolo completo che confronta e contrappone le varie utility utilizzate per monitorare e riavviare un processo?


2
Si dovrebbe davvero essere monitoraggio di tali servizi da fuori area, come le situazioni si verifichino casi in cui si entra in un ciclo di riavvio e consumare tutte le risorse disponibili sul server.
SEE

Scrivi il tuo codice per farlo esattamente come vuoi. È un compito facile.
Ryan Babchishin,

Risposte:


3
  • runitè un successore di daemontools(entrambi sono scritti in c)

  • supervisordusi python.

Uso runitcon sockloglo stesso autore all'interno dei container Alpine Linux lxc da circa 10 mesi per gestire web/ databasee vari altri servizi. È leggero, facile da gestire e non ho riscontrato guasti al servizio. Il demone di registrazione funziona anche come proprio utente e non rootè carino.

voidlinux usa runitcome initsistema e anche per la supervisione del servizio (cerca nella struttura dei pacchetti i runfile per esempi di runitscript).


2

Se la tua distribuzione usa Upstart, segui. Ha un supporto di base per il riavvio dei lavori, ma include limiti che possono impedire il riavvio del ciclo, come indicato da @EEAA.

Se il tuo sistema operativo utilizza un altro programma init, non modificarlo. Non posso davvero aiutarti con gli altri strumenti che hai citato, poiché generalmente utilizzo Ubuntu in cui Upstart è ancora presente (a partire dall'ultimo LTS), quindi ho poco a che fare con loro. Ma non è un compito difficile creare un semplice script che viene eseguito da cron una volta al minuto (o più frequentemente in es. Un ciclo), che può verificare se esiste un PID e rilasciare il riavvio in caso di errore.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.