Add working status detection for pf on FreeBSD

The return code of "service pf onestatus" is usually zero on FreeBSD (tested with FreeBSD 10.0), even if pf is not running. So the service module always thinks that pf is running, even when it needs to be started.
This commit is contained in:
David Fritzsche 2014-10-31 11:41:51 +01:00
parent 63e81cfc2e
commit c96a85fb70

View file

@ -913,10 +913,13 @@ class FreeBsdService(Service):
def get_service_status(self): def get_service_status(self):
rc, stdout, stderr = self.execute_command("%s %s %s %s" % (self.svc_cmd, self.name, 'onestatus', self.arguments)) rc, stdout, stderr = self.execute_command("%s %s %s %s" % (self.svc_cmd, self.name, 'onestatus', self.arguments))
if rc == 1: if self.name == "pf":
self.running = False self.running = "Enabled" in stdout
elif rc == 0: else:
self.running = True if rc == 1:
self.running = False
elif rc == 0:
self.running = True
def service_enable(self): def service_enable(self):
if self.enable: if self.enable: