The reason unless everything appears dead is once $allcool has been set to false (as it will if any of the processes before or after it don't match $process), there's no way for it to become true again.
Instead, consider inverting your logic so that your state is always false until proved otherwise, like...
my $allcool = 0; # start false foreach my $psaxline (@psax_list) { $allcool++ if ($psaxline =~ /$process/); } unless ($allcool) { print "$process does not appear to be running!\n"; }
...or even simpler...
print "$process does not appear to be running!\n" unless grep /$process/, @psax_list;
... which does pretty much the same thing, as grep returns only it's matches, so if there aren't any...
--k.
Update: markup fixes.
In reply to Re: Checking a running daemon
by Kanji
in thread Checking a running daemon
by Kickstart
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |