如何从Windows中的PHP函数exec()获取PID?

jar*_*kam 9 php windows background exec background-process

我一直用:

$pid = exec("/usr/local/bin/php file.php $args > /dev/null & echo \$!");
Run Code Online (Sandbox Code Playgroud)

但我正在使用XP虚拟机来开发一个Web应用程序,我不知道如何在Windows中获取pid.

我在cmd上试过这个:

C:\\wamp\\bin\\php\\php5.2.9-2\\php.exe "file.php args" > NUL & echo $!
Run Code Online (Sandbox Code Playgroud)

它会执行文件,但输出为"$!"

如何将pid放入var $ pid?(使用php)

Sea*_*ney 9

我正在使用Pstools,它允许您在后台创建一个进程并捕获它的pid:

// use psexec to start in background, pipe stderr to stdout to capture pid
exec("psexec -d $command 2>&1", $output);
// capture pid on the 6th line
preg_match('/ID (\d+)/', $output[5], $matches);
$pid = $matches[1];
Run Code Online (Sandbox Code Playgroud)

这有点hacky,但它完成了工作


Jim*_* W. 0

您必须安装额外的扩展,但在Uniformserver 的 Wiki中找到了解决方案。

更新

经过一番搜索后,您可能会tasklist巧合地查看其中的内容,您也许可以使用 PHPexec命令来获得您想要的东西。