my @ps = `ps -ef`; my @pid = (split(/ +/, (grep(/login -- mrc/, @ps))[0]))[1]; my @kill; while (1) { last unless @pid = grep {$_ > 1} @pid; push @kill, @pid; my $pidlist = join('|', @pid); last unless @pid = grep(/\s+[\d]+\s+($pidlist) /, @ps); @pid = map {(split(/\s+/, $_))[1]} @pid; } kill 'TERM', @kill