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


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Dmitry E. Oboukhov                   2:5004/75.151  18 Nov 2006  15:14:54
 To : Roman Yerin
 Subject : CGI и fork
 -------------------------------------------------------------------------------- 
 
 
 RY> From: "Roman Yerin" <kid@vsnet.ru>
 RY>
 RY> Здравствуйте, уважаемые.
 RY>
 RY>  Возможно, это вопрос из FAQ, но таковой мною не обнаружен.
 RY>
 RY>  Итак, есть некий CGI скрипт, который должен форкнуться дабы исполнить
 RY>  достаточно длительную операцию. Все делаю, вроде, как учили:) Форкаюсь,
 RY>  родитель выводит страничку, дите работает. И все было бы хорошо, если бы не
 RY>  одно HО - родитель не выводит данных, пока дите не закончит работу, либо
 RY>  апач не отваливается от потока. close(STDOUT) в ребенке делаю, как у
 RY> О'Рейли
 RY>
 
 код покажи
 я писал запуски демонов из CGI-скриптов и ниче вроде работало
 нормально
 
 вот функция демонизации:
 
 use POSIX;
 # функция делает нас демоном
 # ввод закрывает, вывод направляет в файл
 # переданный в параметре
 sub daemon($)
 {
   my $out=shift;
   return unless $out;
 
   my $pid=fork;
   return 1 if $pid;
 
   POSIX::setsid();
   exit(0) if fork;
 
   open(OUT, ">$out");
   POSIX::dup2(fileno(OUT), fileno(STDOUT));
   POSIX::dup2(fileno(OUT), fileno(STDERR));
   close(OUT);
   close(STDIN);
   $pid=POSIX::getpid();
   print "$pid\n\n";
   return 0;
 }
 
 возвращает 1 в родителе, 0 в дочке
 undef если имя файлкуда stdout передавать не указано
 
 ошибки fork я не проверял, но несложно дописатьпри неоходимости
 --- Mutt/1.5.13 (2006-08-11)
  * Origin: Горе тому кто попал под столь медленные челюсти! (2:5004/75.151)
 
 

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

 Тема:    Автор:    Дата:  
 CGI и fork   Roman Yerin   18 Nov 2006 13:45:15 
 CGI и fork   Dmitry E. Oboukhov   18 Nov 2006 15:14:54 
 Re: CGI и fork   Artem Chuprina   18 Nov 2006 16:09:15 
 CGI и fork   Ivan Frolkov   19 Nov 2006 23:44:50 
 Re: CGI и fork   Roman Yerin   20 Nov 2006 14:20:29 
Архивное /ru.cgi.perl/3926dddf6041.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional