我在从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命令。
谢谢。
发布于 2015-09-30 05:56:16
尝试Symfony Process组件:
$process = new Process('ls -lsa');
$process->start();
while ($process->isRunning()) {
    // waiting for process to finish
}
echo $process->getOutput();https://stackoverflow.com/questions/32854313
复制相似问题