Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Alexey Cheremisin                    2:5020/400     16 Feb 2001  15:01:36
 To : All
 Subject : Re: снова форк
 -------------------------------------------------------------------------------- 
 
 
 
 Julia Fadeeva wrote:
 
 > Hello All.
 >
 > ситуация такая:
 > есть действие, выполняемое в фоновом режиме - юзеру надо пообщещать золотые
 > горы и для него все закончить.
 > Hаблюдаю странное, вот тестовый примерчик:
 >
 
 В perlipc вот что советуют:
 
 >
 > ===========================
 
 use POSIX 'setsid';
 >
 > print "Заголовок<br>\n";
 
 open STDIN, '/dev/null' or die "Can't read /dev/null: $!";
 open STDOUT, '>/dev/null' or die "Can't write to /dev/null: $!";
 
 >
 > $pid = fork(); die("Can not fork") if $pid < 0;
 > if ( $pid ) {    print "Слегка подожите, потом проверьте емейл<br>\n";
 >     close(STDOUT);
 >     exit(0);
 > }
 >
 
 setsid                  or die "Can't start a new session: $!";
 open STDERR, '>&STDOUT' or die "Can't dup stdout: $!";
 
 >
 > #то, что делается незаметно для юзера
 > #небольшой цикл, чтобы процесс поработал хотя бы с минуту
 > $i = 0;
 > while ($i <= 9999999) {
 >     $i++;
 > }
 >
 > #отмылить юзеру результат
 > open(OUT,$MAILCOMMAND) ||  print "Error open sendmail pipe";
 > ...............
 > close(OUT);
 > ===========================
 >
 > Когда выполняю в шелле - все в порядке, печатает:
 > ===========
 > Заголовок
 > Подождите и проверьте емейл
 > ===========
 >
 > и отваливается, потомок с минуту присутствует в списке процессов, потом
 > исчезает (у нас система зомбей сразу стреляет).
 >
 > Если вызываю из браузера, картина другая:
 > печатает заголовок и просьбу подождать, потом пауза (примерной длительности
 > работы остальной части скрипта), и потом опять печатает заголовок и просьбу.
 >
 > Почему такое бывает? Чем вызов из шелла в даннном случае отличается от вызова
 > через браузер?
 >
 > Julia
 
 --- ifmail v.2.15dev5
  * Origin: MTU-Intel ISP (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 снова форк   Julia Fadeeva   16 Feb 2001 16:21:37 
 снова форк   Ivan Frolcov   16 Feb 2001 14:15:24 
 снова форк   Julia Fadeeva   16 Feb 2001 20:20:38 
 снова форк   Ivan Frolcov   16 Feb 2001 16:18:04 
 Re: снова форк   Dmitry Karasik   16 Feb 2001 14:39:12 
 Re: снова форк   Alexey Cheremisin   16 Feb 2001 15:01:36 
 Re: снова форк   Dmitriy MiksIr   17 Feb 2001 17:53:10 
 Re: снова форк   Edward Smirnov   18 Feb 2001 17:32:02 
 Re: снова форк   Dmitriy MiksIr   19 Feb 2001 01:40:58 
 снова форк   Edward Muhutdinov   18 Feb 2001 19:22:40 
Архивное /ru.perl/770771a622ed.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional