##
open( PROC, "| command" )
####
$spid = open( SH, "| /bin/sh" );
select SH; $|++;
print "program_a &\n";
$slept = 0;
until ( $ps =~ m{\b$spid\s+$$\s+/bin/sh\b} &&
$ps =~ m{\b\d+\s+$spid\s+program_a\b} ) {
sleep 1; $slept++;
$ps = `/bin/ps -o pid -o ppid -o comm`;
}
if ($ps =~ m{\b(\d+)\s+$spid\s+sleep\s}) {
$cpid = $1;
sleep ($n-$slept) if ( $n>$slept );
print SH "kill -9 $cpid\n";
} else {
print "Damn! Lost the kid.\n";
}
close SH;