GNU/Linux >> Linux Esercitazione >  >> Linux

Garantire che un processo sia sempre in esecuzione?

Ho iniziato a ospitare siti tempo fa usando Cherokee. Per le fonti esterne (FastCGI, ecc.) Ha un'opzione per avviare il processo se non riesce a trovarne uno in esecuzione sul socket o sulla porta designati. Questo è fantastico perché significa che se PHP o un sito Django cade (come accade occasionalmente) lo riavvia automaticamente.

Su un nuovo server che utilizza PHP-FPM non potevo usare Cherokee (ha un bug con PHP), quindi sono passato a NGINX. Mi piace molto NGINX (per il suo stile di configurazione) ma sto riscontrando seri problemi con i processi che cadono e non si rigenerano mai. PHP lo fa a volte, ma i siti Django sono più un problema. Ho creato script di inizializzazione per loro e vengono visualizzati all'avvio, ma questo non mi aiuta se si rompono tra i riavvii.

Immagino di stare cercando un proxy FastCGI. Qualcosa che, come Cherokee, sa quali processi dovrebbero essere in esecuzione su quali socket/porte e li rigenera su richiesta. Esiste una cosa del genere? C'è un modo per integrarlo in NGINX (per facilità di configurazione)?

Risposta accettata:

Che ne dici di daemontools e in particolare dello strumento di supervisione

supervisionare monitora un servizio. Avvia il servizio e riavvia il servizio se si interrompe. Configurare un nuovo servizio è facile:tutto ciò che serve per la supervisione è una directory con uno script di esecuzione che esegue il servizio.


Linux
  1. Verificare il processo se lo stesso è in esecuzione?

  2. Il modo "corretto" per verificare se un servizio è in esecuzione in uno script?

  3. Debian:come garantire la disponibilità esclusiva della CPU per un processo in esecuzione?

  4. Esegui lo script php come processo daemon

  5. Servizio MongoDB non in esecuzione in Fedora

Come elencare i processi in esecuzione in Linux

Come eliminare l'esecuzione del processo Linux su una porta particolare

Processi in esecuzione

Ottenere il tempo dell'utente e del kernel di un processo in esecuzione?

Controlla i servizi in esecuzione su Linux

Impossibile avviare il servizio postgresql su CentOS 7