use strict; use warnings; my $looper = 0; my $qtrs = shift || 4; while ($looper < (4*$qtrs)+1) { my $counter = 0; $looper += 1; my @zombies = grep { $_ =~ /Doornail/ } `tasklist /v`; foreach my $z (@zombies) { $counter += 1; my ($pid, $batch) = (split /\s+/,$z)[1,10]; my ($path,$cmd) = $batch =~ m:^(.+/)([^/]+)$:; `taskkill /pid $pid`; chdir "/applications/JEDI/$path"; $batch = "start $cmd"; system($batch) } printf "Loop %d, restarted %d processes\n",$looper,$counter; sleep 15*60; }