Здравствуйте. Мне понадобилось сделать следующее. Есть определённая команда, которая выполняется 3 минуты. Мне нужно как-то эту команду вызвать в командной строке через PHP. При этом управление должно моментально возвращаться к интерпритатору, не дожидаясь окончания работы самой команды. На данный момент пробовал 2 функции - exec(команда) и system(команда). Они обе ждут пока команда полностью отработает, и лишь потом скрипт идёт дальше. Подскажите пожалуйста, как быть?
Так и не разобрался с ним =( Ну да ладно, нашёл другой выход. Просто вызываю запуск AJAX-ом и пользователь не видит то что команда выполняется долго =)
Не знаю, как под виндой будет работать 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"; ?> Результат - зомби-процесс в никсах )
Deathdreams, зачем "скидывать решение"? Я же описал как всё сделал. Просто есть скрипт который запускает нужную мне команду, и обращаюсь я к нему с отдельной странички не GET-методом (как до этого), а AJAX-ом. Скрипт может хоть час выполняться - клиент этого не заметит. После AJAX-обращения он просто видит надпись "*** запущен" и работает дальше. Всё просто =)