0
我第一次執行下面的命令,查找創建PHP進程的PID在PHP
$retVal = proc_close(proc_open("rfcomm connect \/dev\/rfcomm0 &> /dev/null 2> /dev/null &", array(), $pipe));
我有proc_open後立即proc_close使用或命令掛起我的PHP頁面。後來在我的劇本,如果我試圖找出這個後臺進程的PID我只得到回到我的grep要求:
$val = shell_exec("ps aux | grep rfcomm0");
它只返回我的grep命令的過程:
www數據6412 0.0 0.3 2004 624?小號12:23 0:00 grep的rfcomm0
現在,如果我進入從了shell_exec相同的指令到我的服務器上我的SSH終端,我得到以下幾點:
www-data 6047 0.0 0.3 1752 592 ? S 12:10 0:00 rfcomm connect /dev/rfcomm0
root 6415 0.0 0.4 3532 804 pts/1 S+ 12:27 0:00 grep rfcomm0
的第一個結果是PID我想要。 PHP無法檢索自己的進程的PID還是有另一種方法來解決這個謎團?
謝謝!
剛剛還發現了,但是pid相差一個。例如,該函數返回6622,但實際的PID(如果我看着ps aux)是6623.奇怪的是嗎? – DanFritz
proc_get_status有很多關於錯誤PID的錯誤報告,也許php版本升級可以解決這個問題? – Night2
我剛剛在最後加了+1,10次之後它總是返回相同的錯誤。謝謝! – DanFritz