service now detects systemd is actually running, not just installed

This commit is contained in:
Brian Coca 2014-11-17 15:03:49 -05:00
parent 0941c9490c
commit f49120598f

View file

@ -394,8 +394,24 @@ class LinuxService(Service):
location[binary] = self.module.get_bin_path(binary)
def check_systemd(name):
# verify service is managed by systemd
if not location.get('systemctl', None):
# verify systemd is installed (by finding systemctl)
if not location.get('systemctl', False):
return False
systemd_enabled = False
# Check if init is the systemd command, using comm as cmdline could be symlink
try:
f = open('/proc/1/comm', 'r')
except IOError, err:
# If comm doesn't exist, old kernel, no systemd
return False
for line in f:
if 'systemd' in line:
systemd_enabled = True
break
if not systemd_enabled:
return False
# default to .service if the unit type is not specified