1. use POSIX ":sys_wait_h"; 2. my $loop = 1; 3. $loop = $ARGV[0] if defined $ARGV[0]; 4. my $timeout = 10; 5. my $child = fork(); 6. unless ( $child ) { 7. # Child 8. exec( "perl count.pl $loop" ); 9. exit 0; 10. } 11. 12. sleep( $timeout ); 13. my $kid = waitpid( $child, WNOHANG ); 14. if( $kid != -1 ) { 15. print "The child is still running! Kill the process: $child...\n"; 16. kill( 9, $child ); 17. } 18. else { print "no timeout\n"; }