use POSIX; $SIG{CHLD} = 'IGNORE'; my $snoop = fork(); if ( $snoop == 0 ){ setpgrp; system("tcpdump -ni int0 -c 5 -w /tmp/somefile &"); } my $sleeper = 0; while ( $sleeper < 11 ){ # How do I check the status of my child pid? I don't want to wait for it to finish, just know if it is still running and 'last;' if not. sleep 1; $sleeper++ } # Only kill the child pid, if it is running. need help here. kill -1, getpgrp($snoop); # continue on with my code