Pergunta

Eu tenho uma caixa QNAP, que executa um sabor do Linux e estou tendo problemas para obter o PID de um processo usando um script PHP. O que eu tenho até agora:

$command = "PATH=$PATH:/share/MD0_DATA/.qpkg/Optware/bin: nohup /opt/bin/plowdown -o /share/MD0_DATA/Qdownload/plowshare http://www.megaupload.com/?d=m7duotr1 2> /share/MD0_DATA/Qdownload/plowshare/outputeeds.txt > /dev/null &";
exec($command, $out);
$result = $out[0];
echo $result;

Se eu executar o comando através de Putty, eu entendo:

[~] # nohup /opt/bin/plowdown -o /share/MD0_DATA/Qdownload/plowshare http://www.megaupload.com/?d=m7duotr1 2> /share/MD0_DATA/Qdownload/plowshare/outputteeds.txt > /dev/null &
22526

O que estou fazendo errado?

Obrigado,

Cristian.

Foi útil?

Solução

O shell normalmente não imprime o PID de um processo que inicia em segundo plano, a menos que seja interativo. Caso contrário, você obteria toneladas de saída durante a inicialização apenas dos PIDs de todos os processos que começam.

Então você precisa fazer a concha imprimir o PID. Fazer

 exec("(PATH=$PATH:/share/MD0_DATA/.qpkg/Optware/bin: " . 
      "nohup /opt/bin/plowdown -o /share/MD0_DATA/Qdownload/plowshare " .
      "http://www.megaupload.com/?d=m7duotr1 2> " . 
      "/share/MD0_DATA/Qdownload/plowshare/outputeeds.txt > /dev/null &);" . 
      "echo $$;", $out);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top