Skip to content

Commit

Permalink
Use either service binary OR rc.d script, for compatibility with pre-…
Browse files Browse the repository at this point in the history
…8.1 FreeBSD
  • Loading branch information
jwarlander committed Feb 19, 2014
1 parent e7ce017 commit fba7b93
Showing 1 changed file with 20 additions and 5 deletions.
25 changes: 20 additions & 5 deletions library/system/service
Expand Up @@ -764,15 +764,24 @@ class FreeBsdService(Service):

platform = 'FreeBSD'
distribution = None
use_service = True

def get_service_tools(self):
self.svc_cmd = self.module.get_bin_path('service', True)
self.svc_cmd = self.module.get_bin_path('service')

if not self.svc_cmd:
self.module.fail_json(msg='unable to find service binary')
self.use_service = False
self.svc_cmd = self.module.get_bin_path('/usr/local/etc/rc.d/%s' % self.name)
if not self.svc_cmd:
self.svc_cmd = self.module.get_bin_path('/etc/rc.d/%s' % self.name)
if not self.svc_cmd:
self.module.fail_json(msg='unable to find service binary or rc.d script for %s' % self.name)

def get_service_status(self):
rc, stdout, stderr = self.execute_command("%s %s %s %s" % (self.svc_cmd, self.name, 'onestatus', self.arguments))
if self.use_service:
rc, stdout, stderr = self.execute_command("%s %s %s %s" % (self.svc_cmd, self.name, 'onestatus', self.arguments))
else:
rc, stdout, stderr = self.execute_command("%s %s %s" % (self.svc_cmd, 'onestatus', self.arguments))
if rc == 1:
self.running = False
elif rc == 0:
Expand All @@ -789,7 +798,10 @@ class FreeBsdService(Service):
if os.path.isfile(rcfile):
self.rcconf_file = rcfile

rc, stdout, stderr = self.execute_command("%s %s %s %s" % (self.svc_cmd, self.name, 'rcvar', self.arguments))
if self.use_service:
rc, stdout, stderr = self.execute_command("%s %s %s %s" % (self.svc_cmd, self.name, 'rcvar', self.arguments))
else:
rc, stdout, stderr = self.execute_command("%s %s %s" % (self.svc_cmd, 'rcvar', self.arguments))
cmd = "%s %s %s %s" % (self.svc_cmd, self.name, 'rcvar', self.arguments)
rcvars = shlex.split(stdout, comments=True)

Expand Down Expand Up @@ -820,7 +832,10 @@ class FreeBsdService(Service):
if self.action is "reload":
self.action = "onereload"

return self.execute_command("%s %s %s %s" % (self.svc_cmd, self.name, self.action, self.arguments))
if self.use_service:
return self.execute_command("%s %s %s %s" % (self.svc_cmd, self.name, self.action, self.arguments))
else:
return self.execute_command("%s %s %s" % (self.svc_cmd, self.action, self.arguments))

# ===========================================
# Subclass: OpenBSD
Expand Down

0 comments on commit fba7b93

Please sign in to comment.