On 12/14/2006 06:24 AM, Gregory Machin wrote:
hi
the script will not work if I use $ARGV[0] but works 100% if I hard
code the $input variable;
what have i missed ?
#!/usr/bin/perl
# if your prgram has the string "grep" in the name or in the path
# this program won't work.
use strict;
use warnings;
my $line;
my $input;
$input=$ARGV[0]; #$input="httpd";
chomp $input;
open PROS, "ps -ef|grep $input |";
while ($line = <PROS>){
unless ($line =~ m/grep/){
print "$input is running\n";
exit;
}
}
print "$input isn't running\n";
exec "/etc/init.d/$input restart &";
Many thanks
Perhaps it would be easier to keep the grepping outside of the ps command:
my $input = $ARGV[0];
my @cmds = grep /\Q$input\E/, qx{ ps -eo '%c' };
if (@cmds < 1) {
... do something ...
}
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>