GNU/Linux >> Znalost Linux >  >> Linux

Ujistěte se, že proces vždy běží?

Před časem jsem začal hostovat stránky pomocí Cherokee. U externích zdrojů (FastCGI atd.) má možnost spustit proces, pokud nemůže najít žádný běžící na určeném soketu nebo portu. To je skvělé, protože to znamená, že pokud PHP nebo web Django spadne (jak to občas dělají), automaticky se restartuje.

Na novém serveru využívajícím PHP-FPM jsem nemohl používat Cherokee (má chybu s PHP), takže jsem přešel na NGINX. Opravdu se mi líbí NGINX (pro jeho styl konfigurace), ale mám vážné problémy s procesy, které padají a nikdy se neobnoví. PHP to někdy dělá, ale stránky Django jsou spíše problém. Vytvořil jsem pro ně init skripty a objevují se při startu, ale to mi nepomůže, pokud se mezi restarty zničí.

Myslím, že hledám proxy FastCGI. Něco, co, stejně jako Cherokee, ví, jaké procesy by měly běžet na kterých zásuvkách/portech a znovu je obnoví na vyžádání. Existuje něco takového? Existuje nějaký způsob, jak to zabudovat do NGINX (pro snadnou konfiguraci)?

Přijatá odpověď:

Co takhle daemontools a konkrétně nástroj supervise

dohlížet na službu. Spustí službu a restartuje službu, pokud zemře. Nastavení nové služby je snadné:vše, co potřebujete pro dohled, je adresář se spouštěcím skriptem, který službu spouští.


Linux
  1. Zkontrolovat proces, pokud je stejný?

  2. „Správný“ způsob, jak otestovat, zda služba běží ve skriptu?

  3. Spusťte php skript jako proces démona

  1. Jak zkontrolovat, zda konkrétní služba běží na Ubuntu

  2. Linux:proces do služby

  3. Start nebo restart služby Mongo se vždy nezdaří

  1. Ukončit proces běžící na portu 80

  2. Určete, ve které skupině (skupinách) je běžící proces?

  3. Proměnné prostředí běžícího procesu na Unixu?