Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   [PHP] Выполнение коменды с немедленным возвратом управления (https://forum.antichat.xyz/showthread.php?t=167020)

Kuzya 29.12.2009 22:47

[PHP] Выполнение коменды с немедленным возвратом управления
 
Здравствуйте. Мне понадобилось сделать следующее.
Есть определённая команда, которая выполняется 3 минуты. Мне нужно как-то эту команду вызвать в командной строке через PHP. При этом управление должно моментально возвращаться к интерпритатору, не дожидаясь окончания работы самой команды. На данный момент пробовал 2 функции - exec(команда) и system(команда).
Они обе ждут пока команда полностью отработает, и лишь потом скрипт идёт дальше. Подскажите пожалуйста, как быть?

Kaimi 29.12.2009 22:52

мб proc_open

Kuzya 30.12.2009 15:07

Так и не разобрался с ним =( Ну да ладно, нашёл другой выход. Просто вызываю запуск AJAX-ом и пользователь не видит то что команда выполняется долго =)

Deathdreams 30.12.2009 15:27

Kuzya
Скинь решение проблемы, не будь единоличником :)

krypt3r 30.12.2009 15:28

Не знаю, как под виндой будет работать
PHP код:

<?php
  $pid 
pcntl_fork ();
  if (
$pid == -1)
    die (
"fork error\n");
  elseif (
$pid) {
    
//pcntl_wait ($status);
  
} else {
    
exec ('ping -c10 mail.ru > /tmp/111.111 2>&1');
  }
  echo 
"Exiting\n";
?>

Результат - зомби-процесс в никсах )

Nightmarе 30.12.2009 16:10

так php же не многопоточный. Всё делается в одном потоке, и переключить команду в один поток и прожолжить выполнение... ну хз скорее навряд ли.

Kuzya 31.12.2009 08:40

Deathdreams, зачем "скидывать решение"? Я же описал как всё сделал. Просто есть скрипт который запускает нужную мне команду, и обращаюсь я к нему с отдельной странички не GET-методом (как до этого), а AJAX-ом. Скрипт может хоть час выполняться - клиент этого не заметит. После AJAX-обращения он просто видит надпись "*** запущен" и работает дальше. Всё просто =)


Время: 01:29