GNU/Linux >> Tutoriales Linux >  >> Linux

¿Asegurarse de que un proceso esté siempre en ejecución?

Comencé a alojar sitios hace un tiempo usando Cherokee. Para fuentes externas (FastCGI, etc.) tiene la opción de iniciar el proceso si no puede encontrar uno ejecutándose en el puerto o socket designado. Esto es genial porque significa que si PHP o un sitio de Django se cae (como ocurre ocasionalmente), se reinicia automáticamente.

En un servidor nuevo que usaba PHP-FPM, no podía usar Cherokee (tiene un error con PHP), así que me mudé a NGINX. Realmente me gusta NGINX (por su estilo de configuración), pero tengo serios problemas con los procesos que fallan y nunca reaparecen. PHP hace esto a veces, pero los sitios de Django son más problemáticos. He creado secuencias de comandos de inicio para ellos y aparecen en el arranque, pero esto no me ayuda si fallan entre reinicios.

Supongo que estoy buscando un proxy FastCGI. Algo que, como Cherokee, sepa qué procesos deberían ejecutarse en qué puertos/sockets y los reaparece a pedido. ¿Existe tal cosa? ¿Hay alguna forma de integrar esto en NGINX (para facilitar la configuración)?

Respuesta aceptada:

¿Qué tal daemontools y específicamente la herramienta de supervisión?

supervisar supervisa un servicio. Inicia el servicio y reinicia el servicio si muere. Configurar un nuevo servicio es fácil:todas las necesidades de supervisión son un directorio con un script de ejecución que ejecute el servicio.


Linux
  1. Debian:¿cómo garantizar la disponibilidad exclusiva de la CPU para un proceso en ejecución?

  2. Comprobar los servicios en ejecución en Linux

  3. El servicio MongoDB no se ejecuta en Fedora

  4. El inicio o reinicio del servicio Mongo siempre falla

  5. Matar el proceso que se ejecuta en el puerto 80

Cómo enumerar los procesos en ejecución en Linux

Cómo matar el proceso de ejecución de Linux en un puerto particular

Procesos corriendo

No se puede iniciar el servicio postgresql en CentOS 7

¿Determinar en qué grupo(s) se encuentra un proceso en ejecución?

¿Variables de entorno de un proceso en ejecución en Unix?