1
我在perl中使用fork
和CGI::Fast
。
當我正常運行時,它按預期打印In handle request
5次。
但是,當我將該文件配置爲apache服務器中的快速cgi時,它僅打印一次In handle request
。
任何人都可以幫助我。fork with CGI :: Fast perl
樣例程序:
#!/usr/bin/perl
use strict;
use warnings;
use CGI::Fast;
use Data::Dumper;
use HTML::Template;
while(my $query = CGI::Fast->new()) {
my $timeout ='60';
eval {
local $SIG{ALRM} = sub {
print STDERR "Fcgi error";
exit(0);
};
alarm $timeout;
#wait till all the result returns
my $val = process_request($query);
alarm 0;
} or print STDERR [email protected];
}
sub process_request{
my $query = shift;
my @childs =();
print $query->header;
foreach my $i (1..5) {
my $pid = fork();
if($pid) {
push(@childs, $pid);
}
elsif($pid == 0) {
_handle_request();
exit(0);
}
}
foreach my $child (@childs) {
my $pid = waitpid($child, 0);
}
return;
}
sub _handle_request{
print "In handle request<br/>";
return;
}