我首先执行以下命令,
$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 ? S 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 还是有其他方法可以解决这个谜团?
谢谢!