我从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();