在WINDOWS中启动一个后台进程


START a proccess in background in WINDOWS

我从PHP脚本运行命令有问题。我要运行的命令是

echo y | plink -ssh -N -D 9999 admin@1.2.3.4 -pw admin -v

事情是命令运行,但脚本冻结,直到执行plink命令,这是我不想要的。我还尝试了(在后台运行)这个:

START /MIN "cmd.exe" /C "plink -ssh -N -D 9999 admin@1.2.3.4 -pw admin"

,我看到最小化的plink正在运行,只要我关闭它,脚本就会继续。

我也试过:

START /B /MIN "cmd.exe" /C "plink -ssh -N -D 9999 admin@1.2.3.4 -pw admin"

,它做同样的事情,但在PHP脚本中显示输出。

这是函数:

function create_tunnel($ip,$user,$pass,$port)
{
    exec('START /min cmd /c "echo y | plink -ssh -N -D '.$port.' '.$user.'@'.$ip.' -pw '.$pass.' -v" > nul');
}

我必须做些什么才能运行这个命令并让PHP脚本继续执行?在linux中,这将是非常简单的,我只会使用screen命令。

谢谢。

尝试Symfony进程组件:

$process = new Process('ls -lsa');
$process->start();
while ($process->isRunning()) {
    // waiting for process to finish
}
echo $process->getOutput();