|
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) Вернуться к списку тем, сортированных по:
Архивное /ru.cgi.perl/3926dddf6041.html, оценка из 5, голосов 10
|