system/service module initctl location usage (#19712)

* Call initctl version based on initctl's retrieved location

* Remove the use of start/stop/restart in favor of initctl

* Provide correct argument order for initctl usage
pull/25622/head
ademmers 8 years ago committed by Brian Coca
parent 3f0c47196e
commit 025b52938e

@ -490,7 +490,7 @@ class LinuxService(Service):
self.upstart_version = LooseVersion('0.0.0')
try:
version_re = re.compile(r'\(upstart (.*)\)')
rc,stdout,stderr = self.module.run_command('initctl version')
rc,stdout,stderr = self.module.run_command('%s version' % location['initctl'])
if rc == 0:
res = version_re.search(stdout)
if res:
@ -498,9 +498,7 @@ class LinuxService(Service):
except:
pass # we'll use the default of 0.0.0
if location.get('start', False):
# upstart -- rather than being managed by one command, start/stop/restart are actual commands
self.svc_cmd = ''
self.svc_cmd = location['initctl']
elif location.get('rc-service', False):
# service is managed by OpenRC
@ -922,6 +920,11 @@ class LinuxService(Service):
arguments = self.arguments
if self.svc_cmd:
if not self.svc_cmd.endswith("systemctl"):
if self.svc_cmd.endswith("initctl"):
# initctl commands take the form <cmd> <action> <name>
svc_cmd = self.svc_cmd
arguments = "%s %s" % (self.name, arguments)
else:
# SysV and OpenRC take the form <cmd> <name> <action>
svc_cmd = "%s %s" % (self.svc_cmd, self.name)
else:

Loading…
Cancel
Save