Mantenha um script PHP rodando indefinidamente em um servidor web [duplicado]

0

Estou tendo um problema muito grande que preciso resolver. Basicamente eu tenho pouca experiência usando Linux e tenho trabalhado em um projeto recentley que envolve o uso de muitos comandos Linux para rodar php scripts no meu servidor web.

Basicamente eu tenho dois scripts

  1. get_tweets.php
  2. parse_tweets.php

Eu preciso que eles sejam executados constantemente pelas próximas 3 a 4 semanas no meu servidor web. Eu uso o seguinte comando para fazê-los funcionar e eles parecem durar o dia, mas quando eu verifico de manhã eles parecem ter parado de trabalhar!

nohup php get_tweets.php > /dev/null & e depois nohup php parse_tweets.php > /dev/null &

Eu sei que, usando & , posso manter os scripts em execução no background e eles são executados quando eu saio de ssh , mas como eu disse, eles parecem funcionar bem o dia todo, quando eu verifico manhã eles pararam.

O problema que estou tendo é como posso mantê-los funcionando sem parar. Existe um script simples que eu poderia escrever para verificar se eles estão em execução e se não, reinicie-os ou talvez reinicie-os a cada 5 horas ou algo assim?

Eu gostaria de receber ajuda, já que isso é um grande problema e não tenho ideia de como resolvê-lo.

    
por Javacadabra 12.09.2014 / 10:03

1 resposta

3

Coloque um loop infinito em torno dele:

nohup sh -c 'while true; do php get_tweets.php; done' >/dev/null &
nohup sh -c 'while true; do php parse_tweets.php; done' >/dev/null &

Pode ser útil redirecionar a saída para um arquivo real (use > > para anexar em vez de sobrescrever) para que qualquer saída possa ser verificada para lhe dar uma pista do motivo do script parar. Também verifique nohup.out para quaisquer pistas.

    
por 12.09.2014 / 10:54

Tags