my $child = fork; if ($child) { # I am in the parent...wait then kill for (1..10) { sleep 1; print "."; } kill 9, $child; } else { # Run the background program exec '/path/to/program > /dev/null 2>&1'; } #### my $pid = open my $cmdfh, "-|", '/path/to/program' or die "Cannot fork: $!\n"; for ( 1 .. 10 ) { print "."; sleep 1; } kill 9, $pid;