$ cat long.pl
#!/usr/bin/perl
use strict;
use warnings;
print localtime () . ": Hello from $0 ($$)!\n";
sleep 30;
print localtime () . ": Goodbye from $0 ($$)!\n";
__END__
$ cat fork.pl
#!/usr/bin/perl
use strict;
use warnings;
print localtime () . ": Hello from the parent ($$)!\n";
my $pid = fork;
die "Fork failed: $!" unless defined $pid;
unless ($pid) {
print localtime () . ": Hello from the child ($$)!\n";
exec "./long.pl"; # Some long running process.
die "Exec failed: $!\n";
}
print localtime () . ": Goodbye from the parent ($$)!\n";
__END__
$ ./fork.pl
Fri Mar 28 13:39:20 2003: Hello from the parent (458)!
Fri Mar 28 13:39:20 2003: Goodbye from the parent (458)!
Fri Mar 28 13:39:20 2003: Hello from the child (459)!
Fri Mar 28 13:39:20 2003: Hello from ./long.pl (459)!
Fri Mar 28 13:39:50 2003: Goodbye from ./long.pl (459)!