#!/usr/bin/perl use strict; use warnings; use CGI qw(:standard); print header, start_html(-title=>'fork test',); print "Parent start at " . localtime() . "
\n"; print STDERR "Parent start at " . localtime() . "\n"; if(my $pid = fork()) { sleep(5); print "Parent forking at " . localtime() . "
\n"; print STDERR "Parent forking at " . localtime() . "\n"; wait(); } else { print "First child at " . localtime() . "
\n"; print STDERR "First child at " . localtime() . "\n"; exit(0); } if(my $pid = fork()) { print "Parent forking again at " . localtime() . "
\n"; print STDERR "Parent forking again at " . localtime() . "\n"; } else { sleep(50); print "Second child at " . localtime() . "
\n"; print STDERR "Second child at " . localtime() . "\n"; close(STDOUT); sleep(50); print STDERR "Second child after STDOUT close at " . localtime() . "\n"; exit(0); } print end_html; print "Parent exiting at " . localtime() . "
\n"; print STDERR "Parent exiting at " . localtime() . "\n"; exit(0);