O que é a Melhor Prática para executar o PHP em segundo plano?

1

Ao executar o seguinte na linha de comando, ele será suspenso até que eu emita o comando fg:

/usr/bin/php -r 'phpinfo();' &

Este é o caso, independentemente de o código PHP estar contido em um arquivo com um shebang de #!/usr/bin/php .

Estou executando o CentOS e o bash shell.

    
por sfanjoy 19.12.2014 / 15:24

1 resposta

3

Não existe um método específico para o PHP quando se trata de executar trabalhos em segundo plano. Os métodos amplamente aceitos são:

  1. Usando um screen . Instale screen (se ainda não estiver instalado) e, em seguida, execute seu script PHP em uma tela. Você pode desanexar da screen a qualquer momento e efetuar logout da máquina e o script continuará em execução. Aqui é uma das poucas centenas de tutoriais disponíveis on-line sobre como usar o screen .

  2. Usando nohup . O uso é:

nohup <yourPHPcommand> &

O nohup deixará seu script 'dizer não' ao sinal HANGUP quando você efetuar logout, como resultado, seu script PHP continuará sendo executado mesmo depois que você sair. O único problema é que você não será capaz de trazer esse trabalho / processo para o primeiro plano e ver a saída (se for importante para você). Você pode redirecionar a saída para um arquivo e ver o que está sendo impresso a partir desse arquivo.

Dos dois acima, recomendo que você use o screen . Você pode anexar à tela sempre que quiser e controlar o processo da mesma forma que faria se tivesse iniciado em primeiro plano.

P.S: - A execução do script com o e comercial ( & ) no final coloca-o em segundo plano, mas o script / processo é eliminado quando você sai do terminal.

    
por 19.12.2014 / 16:05