|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Dmitriy MiksIr 2:5020/400 17 Feb 2001 17:53:10 To : Julia Fadeeva Subject : Re: снова форк -------------------------------------------------------------------------------- Julia Fadeeva <Julia.Fadeeva@p22.f66.n5070.z2.fidonet.org> пишет: JF> Hello All. JF> ситуация такая: JF> есть действие, выполняемое в фоновом режиме - JF> юзеру надо пообщещать золотые JF> горы и для него все закончить. JF> Hаблюдаю странное, вот тестовый примерчик: JF> =========================== лучше сказать $| = 1; JF> print "Заголовок<br>\n"; JF> $pid = fork(); die("Can not fork") if $pid < 0; JF> if ( $pid ) { print "Слегка подожите, потом JF> проверьте емейл<br>\n"; JF> close(STDOUT); JF> exit(0); JF> } тут скажи close STDIN,STDOUT,STDERR JF> #то, что делается незаметно для юзера JF> #небольшой цикл, чтобы процесс поработал хотя бы JF> с минуту JF> $i = 0; JF> while ($i <= 9999999) { JF> $i++; JF> } sleep(60) и только так. то, что ты написала кушает время процессора, из-за этого скрипт может быть прибит JF> #отмылить юзеру результат JF> open(OUT,$MAILCOMMAND) || print "Error open print куда? JF> sendmail pipe"; JF> ............... JF> close(OUT); JF> =========================== JF> Когда выполняю в шелле - все в порядке, печатает: JF> =========== JF> Заголовок JF> Подождите и проверьте емейл JF> =========== JF> и отваливается, потомок с минуту присутствует в JF> списке процессов, потом JF> исчезает (у нас система зомбей сразу стреляет). JF> Если вызываю из браузера, картина другая: JF> печатает заголовок и просьбу подождать, потом JF> пауза (примерной длительности JF> работы остальной части скрипта), и потом опять JF> печатает заголовок и просьбу. JF> Почему такое бывает? Чем вызов из шелла в даннном JF> случае отличается от вызова JF> через браузер? JF> Julia -- ------------------------------------------------------------- MiksIr <miksir@mixup.org.ru> http://www.miksir.pp.ru/ Отправлено через сервер Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: Talk.ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6488056a364f.html, оценка из 5, голосов 10
|