Ejecutando script PHP constantemente en segundo plano

Ejecutando script PHP constantemente en segundo plano

He creado un archivo PHP que contiene un bucle infinito que realiza ciertas comprobaciones y actúa si las variables cambian (lo que hay dentro del script probablemente no sea muy importante para mi pregunta). Quiero que el servicio se ejecute siempre, hasta que le indique que se detenga. Después de buscar un poco, decidí utilizarlo nohuppara esta tarea. Sin embargo, la desventaja de nohup es que realmente no puedo monitorear si el servicio está inactivo (aparte de ejecutarlo ps -auxy buscar el proceso manualmente).

También leí cosas sobre supervisord, que también sonaron bastante bien, pero estoy un poco perdido y no sé realmente cuál es la mejor solución. Quiero que el script PHP se inicie automáticamente al reiniciar y quiero que el servicio verifique si el script aún se está ejecutando; si no, quiero que se reinicie/avise para poder verificar qué pasa.

¿Debería usar cualquiera de los dos nohupo supervisord? ¿O ustedes recomiendan algo totalmente diferente? Sería fantástico si pudiera ejecutar el servicio dentro de un contenedor acoplable donde simplemente pueda agregar la ejecución del servicio dentro del archivo Dockerfile.

Respuesta1

Parece que es mejor que uses el buen CRON.

Puede configurar cualquier script para que se ejecute en cualquier intervalo, aunque no recomendaría ejecutarlo continuamente, tal vez ejecutarlo cada 5 minutos. Entonces algo como esto:

*/5 * * * * php /path/to/php/file >/dev/null 2>&1

Para que puedas conocer más sobre CRON:https://linuxman.co/linux-server/cron-a-nosedive-into-lazy-sysadmin/

información relacionada