Experimente nohup
e disown
:
nohup php5-cgi /var/www/script.php -q &
disown
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?
Se screen
estiver disponível, use esse . Basta iniciar uma tela, executar o comando nela, desconectar a tela e seguir seu caminho alegre.
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 ...
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).