Processo não executado em segundo plano

0
<?php
 while(true)
    {
    set_time_limit(2);
    $reas ="wake up from sleep!!!!!!!!!! \n ";
    echo $reas;
    sleep(5);
   // $readlen = 0;
    }
?>

Eu tento executar este código. Em primeiro plano, funciona perfeitamente. Mas quando executá-lo em background e verificar o processo, o id não será encontrado. Eu tentei usar o comando top para verificar e

  nohup php p2.php & 

para obter o ID do processo, mas quando tento matar o processo usando

 kill 1234

Recebo uma mensagem de erro "nenhum tal processo".

O que está errado no meu código? Como posso executá-lo em background e torná-lo exibido em top ?

    
por user202821 16.10.2013 / 06:58

1 resposta

1

Você pode usar screen para isso:

screen watch -n 1 ls -l /etc/

Então, dentro de screen type Ctrl - a d para desanexar a tela.

O processo ainda está em execução, mesmo se você fizer logout, consulte:

# ps faux | grep ls
root     13879  0.0  0.0   7828   844 pts/0    S+   08:20   0:00          \_ grep ls
root     13571  0.0  0.0  23388  1436 ?        Ss   08:18   0:00 SCREEN watch -n 1 ls -l /etc/
root     13572  0.1  0.0  14864  1780 pts/1    Ss+  08:18   0:00  \_ watch -n 1 ls -l /etc/

E há também o pid. Ou via:

#pidof watch
13572

Para reativar o tipo de tela:

screen -r

E você está de volta, para Ctrl - c ou outra coisa.

    
por chaos 16.10.2013 / 08:24