Виндоус 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 очень сильно занят ожиданием ответа от сервера. Но его не будет... Ведь сервер всё ещё работает. Как бы заставить скрипт завершиться..?