У меня проблема с запуском команды из PHP
скрипт. Команда, которую я пытаюсь выполнить:
echo y | plink -ssh -N -D 9999 [email protected] -pw admin -v
Дело в том, что команда выполняется, но сценарий останавливается до выполнения plink
команда, которую я не хочу. Я также попытался (работает в фоновом режиме) это:
START /MIN "cmd.exe" /C "plink -ssh -N -D 9999 [email protected] -pw admin"
и я вижу свернутый plink
работает, и как только я его закрываю, скрипт продолжается.
Я также попробовал:
START /B /MIN "cmd.exe" /C "plink -ssh -N -D 9999 [email protected] -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();
Других решений пока нет …