#!/usr/bin/perl -w
use strict;
use CGI;
use Errno qw(EAGAIN);
my $pid;
my $page = new CGI;
print $page->header(),
$page->start_html();
FORK:
{
if ($pid = fork())
{
print <
In the parent process
HTML
print $page->end_html();
exit;
}
elsif (defined $pid)
{
print <
In the child process
HTML
print $page->end_html();
close STDIN;
close STDOUT;
close STDERR;
exec ('sleep 60');
exit;
}
elsif ($! == EAGAIN)
{
print qq(Re-doing fork\n);
sleep 5;
redo FORK;
}
else
{
die qq(Can't fork: $!'n);
}
}