my $pm = Parallel::ForkManager->new( 10 ); $SIG{ALRM} = sub { die ("TimeOut"); }; eval { alarm( 300 ); foreach my $server (@servers) { my $pid = $pm->start and next; my $fqdn = "$server.$domain"; my $status = `ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $id\@$fqdn cat <$script \"|\" 2>/dev/null $int - --fromhost $whoami`; sleep 4; $pm->finish; } $pm->wait_all_children(); alarm(0); }; # end of eval