Виндоус 10. PHP. При юзании методов: exec(), shell_exec() Зависает cервер

Существует две кнопки. И аджакс код который посылает Value одной из кнопок на сервер. Задача кнопок прозрачна: или запустить сервер или остановить его.

<?php
session_start();
set_time_limit(0);
ignore_user_abort(true);

$d = trim(filter_var($_POST['d'], FILTER_SANITIZE_NUMBER_INT));

if ($d == '1')
{
$task="cd C:\Users\admin\Desktop\server & server1.1.jar";   //вкл
//$task="";
}   

elseif ($d == '2')
{
$task='taskkill /im server.exe';    //выключение
}

else
{
exit();
}

//Ниже метод - не помог. Не запустилось совсем.
//function execInBackground($cmd) {
//    if (substr(php_uname(), 0, 7) == "Windows"){
//        pclose(popen("start /B ". $cmd, "r")); 
 //   }
//    else {
//        exec($cmd . " > /dev/null &");  
//    }
//}
//execInBackground($task);
$result = exec($task );


echo 'Готово';
?>

Так вот, я запускаю сервер. Сервер запускается. Ура. Однако до тех пор пока сервер не падёт или в ручную его не закроешь - дальнейшее взаимодействие с php невозможно. Я так полагаю, что php очень сильно занят ожиданием ответа от сервера. Но его не будет... Ведь сервер всё ещё работает. Как бы заставить скрипт завершиться..?


Ответы (0 шт):