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 nohup
para 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 -aux
e 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 nohup
ou 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/