Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
[PHP] Выполнение коменды с немедленным возвратом управления |

29.12.2009, 22:47
|
|
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме: 140661
Репутация:
313
|
|
[PHP] Выполнение коменды с немедленным возвратом управления
Здравствуйте. Мне понадобилось сделать следующее.
Есть определённая команда, которая выполняется 3 минуты. Мне нужно как-то эту команду вызвать в командной строке через PHP. При этом управление должно моментально возвращаться к интерпритатору, не дожидаясь окончания работы самой команды. На данный момент пробовал 2 функции - exec(команда) и system(команда).
Они обе ждут пока команда полностью отработает, и лишь потом скрипт идёт дальше. Подскажите пожалуйста, как быть?
|
|
|

29.12.2009, 22:52
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме: 18127311
Репутация:
1676
|
|
мб proc_open
|
|
|

30.12.2009, 15:07
|
|
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме: 140661
Репутация:
313
|
|
Так и не разобрался с ним =( Ну да ладно, нашёл другой выход. Просто вызываю запуск AJAX-ом и пользователь не видит то что команда выполняется долго =)
|
|
|

30.12.2009, 15:27
|
|
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме: 2603363
Репутация:
278
|
|
Kuzya
Скинь решение проблемы, не будь единоличником 
|
|
|

30.12.2009, 15:28
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
Не знаю, как под виндой будет работать
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";
?>
Результат - зомби-процесс в никсах )
|
|
|

30.12.2009, 16:10
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
так php же не многопоточный. Всё делается в одном потоке, и переключить команду в один поток и прожолжить выполнение... ну хз скорее навряд ли.
|
|
|

31.12.2009, 08:40
|
|
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме: 140661
Репутация:
313
|
|
Deathdreams, зачем "скидывать решение"? Я же описал как всё сделал. Просто есть скрипт который запускает нужную мне команду, и обращаюсь я к нему с отдельной странички не GET-методом (как до этого), а AJAX-ом. Скрипт может хоть час выполняться - клиент этого не заметит. После AJAX-обращения он просто видит надпись "*** запущен" и работает дальше. Всё просто =)
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|