2010-11-01 217 views
0

我有一个QNAP盒子,它运行着linux的风格,我在使用php脚本获取进程的PID时遇到了问题。我至今:PHP:获取特定进程的PID

$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; 

如果我通过PUTTY运行命令,我得到:

[~] # 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 

我在做什么错?

谢谢,

克里斯蒂安。

回答

2

外壳通常不打印它开始在后台进程的PID,除非它是互动的。否则,只需从启动的所有进程的PID中获得大量的输出。

所以你需要让shell打印PID。做

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); 
+0

谢谢马丁,完美的作品。 – Chris19 2010-11-01 09:00:57

+0

任何想法为什么从这里的代码不能正常工作? http://stackoverflow.com/questions/4133570/php-foreach-problem-with-a-script是你在一段时间后帮助我的代码范围。 – Chris19 2010-11-11 11:06:07

1
+0

谢谢,我看了看,但无法弄清楚如何使用它。 – Chris19 2010-11-01 07:45:57

+0

调用一个没有参数的函数会有什么问题?你有多少种不同的使用方式? – 2010-11-01 07:52:06

+0

作为后续工作:OP不希望PHP进程的PID,而是exec在后台启动的进程的PID。 – 2010-11-01 07:56:12