|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Ilya_Khaikov 2:468/22.17 07 Sep 2000 21:51:13 To : All Subject : forking from a CGI script --------------------------------------------------------------------------------
.RFC-X-Complaints-To: news@localhost.localdomain
.RFC-NNTP-Posting-Date: 7 Sep 2000 18:51:13 GMT
.RFC-X-Mailer: Mozilla 4.7 [en] (X11; I; Linux 2.2.14-1mdklinus i586)
.RFC-X-Accept-Language: ru, en
From: Ilya_Khaikov <elli0t@i.am>
All,
Помогите разобраться, в чем дело, плиз:
Есть следующий скрипт:
#!/usr/local/bin/perl -w
use strict;
use Carp;
sub forkfunc # выдрана из Proc::Forkfunc
{
my ($func, @args) = @_;
my $pid;
{
if ($pid = fork()) {
#parent
return $pid;
} elsif (defined $pid) {
#child
&$func(@args);
croak "call to child returned\n";
} elsif ($! == &POSIX::EAGAIN) {
my $o0 = $0;
$0 = "$o0: waiting to fork";
sleep 5;
$0 = $o0;
redo;
} else {
croak "Can't fork: $!";
}
}
}
sub testsub
{
sleep 30;
}
forkfunc ( \&testsub );
# end
при его запуске из шелла функция testsub fork-ается, и нормально
работает в фоне после завершения работы скрипта.
если попытаться запустить этот скрипт, как cgi (естественно, добавив
content-type), то скрипт не завершает работу после вызова
forkfunc, а ждет завершения функции testsub.
та же ситуация получаются, если пользоваться вызовом
system("$path/script.pl &") для вызова внешнего скрипта.
пробовал также `nohup $path/script.pl &`, $|=1 - не помогает.
сервер apache/1.3.9 (unix).
если кто-то сталкивался с такой проблемой - просьба объяснить,
в чем причина и возможно ли такое вообще?
Заранее благодарю.
--
// Elli0t [elli0t(@)i.am]
--- ifmail v.2.14
* Origin: Pentagon News Server (2:468/22.17@fidonet)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/5672d1f97f9.html, оценка из 5, голосов 10
|