PHP: Obtenha PID de um processo específico
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.
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);
Outras dicas
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow