Check for systemd ownership of a service even if an init.d script exists

Also slight modification to the error message in the earlier commit that
modified the update-rc.d detection portion of the code

Fixes #3474
This commit is contained in:
James Cammarata 2013-09-10 19:27:54 -05:00
parent ef02c6107a
commit 5e8918cb2c

View file

@ -407,8 +407,12 @@ class LinuxService(Service):
# Locate a tool for enable options
if location.get('chkconfig', None) and os.path.exists("/etc/init.d/%s" % self.name):
# we are using a standard SysV service
self.enable_cmd = location['chkconfig']
if check_systemd(self.name):
# service is managed by systemd
self.enable_cmd = location['systemctl']
else:
# we are using a standard SysV service
self.enable_cmd = location['chkconfig']
elif location.get('update-rc.d', None):
if check_systemd(self.name):
# service is managed by systemd
@ -420,7 +424,7 @@ class LinuxService(Service):
# service is managed by with SysV init scripts, but with update-rc.d
self.enable_cmd = location['update-rc.d']
else:
self.module.fail_json(msg="update-rc.d found but couldn't determine how the service is managed")
self.module.fail_json(msg="service not found: %s" % self.name)
elif location.get('rc-service', None) and not location.get('systemctl', None):
# service is managed by OpenRC
self.svc_cmd = location['rc-service']