2010-11-01 99 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