executa o script php em segundo plano

1

Existe uma maneira de lançar um script PHP e deixá-lo rodar no servidor até que ele termine?

Eu uso isso

php5-cgi /var/www/script.php -q &

conectando via massa. Quando fecho (a sessão) o script pára! Por que isso depende da sessão?

    
por Sandro Antonucci 18.11.2012 / 15:18

4 respostas

2

Experimente nohup e disown :

nohup php5-cgi /var/www/script.php -q &
disown
    
por 18.11.2012 / 15:21
2

Se screen estiver disponível, use esse . Basta iniciar uma tela, executar o comando nela, desconectar a tela e seguir seu caminho alegre.

    
por 18.11.2012 / 15:22
1

Isso porque o seu processo não é desacoplado do sinal de desligamento. Use o seguinte em seu lugar.

nohup php5-cgi /var/www/script.php -q 

Você também pode usar um multiplexador de terminal como screen ou tmux se quiser poder voltar à saída do script ...

    
por 18.11.2012 / 15:22
1

Lembre-se também de que o PHP possui um limite de tempo limite de script após o qual terminará automaticamente a execução do script. Você pode modificar a configuração max_execution_time no seu /etc/php5/cli/php.ini (o padrão é 30 segundos).

    
por 18.11.2012 / 16:45