Executando script PHP constantemente em segundo plano

Executando script PHP constantemente em segundo plano

Eu criei um arquivo PHP que contém um loop infinito que faz certas verificações e atua se as variáveis ​​mudarem (o que está dentro do script provavelmente não é muito importante para minha pergunta). Quero que o serviço funcione sempre, até que eu diga para parar. Depois de alguma pesquisa decidi usar nohuppara esta tarefa. No entanto, a desvantagem do nohup é que não consigo monitorar se o serviço está inativo (a não ser executar manualmente ps -auxe procurar o processo).

Também li coisas sobre supervisord, que também pareciam muito boas, mas estou meio perdido e não sei qual é a melhor solução. Quero que o script PHP inicie automaticamente nas reinicializações e quero que o serviço verifique se o script ainda está em execução; caso contrário, quero que ele seja reinicializado/alerta para que eu possa verificar o que está acontecendo.

Devo usar um nohupou supervisord? Ou vocês recomendam algo totalmente diferente? Seria ótimo se eu pudesse executar o serviço dentro de um contêiner docker onde pudesse simplesmente adicionar a execução do serviço dentro do arquivo Dockerfile.

Responder1

Parece que é melhor usar apenas o bom e velho CRON.

Você pode configurar qualquer script para ser executado em qualquer intervalo, embora eu não recomende executá-lo continuamente, talvez executá-lo a cada 5 minutos. Então, algo assim:

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

Então você pode aprender mais sobre CRON:https://linuxman.co/linux-server/cron-a-nosedive-into-lazy-sysadmin/

informação relacionada