Author: arkurth
Date: Mon Jan 11 20:48:23 2016
New Revision: 1724127
URL: http://svn.apache.org/viewvc?rev=1724127&view=rev
Log:
VCL-923
Updated SysV.pm::service_running. It was only checking for either of the
following strings: "is running", "is not running". The daemon file included
with the VCL code does not display "is not running", but "no vcld processes
found". As a result, it wasn't able to determine if the vcld service was
running. Added a regex to look for "no ... processes". Also added code to check
the exit status if none of the strings match.
Modified:
vcl/trunk/managementnode/lib/VCL/Module/OS/Linux/init/SysV.pm
Modified: vcl/trunk/managementnode/lib/VCL/Module/OS/Linux/init/SysV.pm
URL:
http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/Module/OS/Linux/init/SysV.pm?rev=1724127&r1=1724126&r2=1724127&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/Module/OS/Linux/init/SysV.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/Module/OS/Linux/init/SysV.pm Mon Jan 11
20:48:23 2016
@@ -319,19 +319,23 @@ sub service_running {
notify($ERRORS{'WARNING'}, 0, "'$service_name' service does not
exist on $computer_node_name");
return;
}
- elsif (grep(/is running/i, @$output)) {
+ elsif (grep(/(is running)/i, @$output)) {
# Output if the service is running: '<service name> is running'
- notify($ERRORS{'DEBUG'}, 0, "'$service_name' service is running
on $computer_node_name");
+ notify($ERRORS{'DEBUG'}, 0, "'$service_name' service is running
on $computer_node_name, output:\n" . join("\n", @$output));
return 1;
}
- elsif (grep(/is not running/i, @$output)) {
+ elsif (grep(/(is not running|no\s.*process)/i, @$output)) {
# Output if the service is not running: '<service name> is not
running'
- notify($ERRORS{'DEBUG'}, 0, "'$service_name' service is not
running on $computer_node_name");
+ notify($ERRORS{'DEBUG'}, 0, "'$service_name' service is not
running on $computer_node_name, output:\n" . join("\n", @$output));
return 0;
}
+ elsif ($exit_status == 0) {
+ notify($ERRORS{'DEBUG'}, 0, "unable to determine if
'$service_name' service is running on $computer_node_name based on output but
exit status of $command is $exit_status, assuming service is running,
output:\n" . join("\n", @$output));
+ return 1;
+ }
else {
- notify($ERRORS{'WARNING'}, 0, "failed to determine if
'$service_name' service is running on $computer_node_name, exit status:
$exit_status, output:\n" . join("\n", @$output));
- return;
+ notify($ERRORS{'DEBUG'}, 0, "unable to determine if
'$service_name' service is running on $computer_node_name based on output but
exit status of $command is $exit_status, assuming service is NOT running,
output:\n" . join("\n", @$output));
+ return 0;
}
}