simpler way to check if systemd is the init system

According to
http://www.freedesktop.org/software/systemd/man/sd_booted.html
check if the directory /run/systemd/system/ exists.
This commit is contained in:
Simon Hafner 2015-10-22 22:26:51 +02:00
parent 1ca4543e48
commit e65c0f896a

View file

@ -403,22 +403,7 @@ class LinuxService(Service):
self.svc_initscript = initscript
def check_systemd():
# verify systemd is installed (by finding systemctl)
if not location.get('systemctl', False):
return 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:
return True
return False
return os.path.exists("/run/systemd/system/")
# Locate a tool to enable/disable a service
if location.get('systemctl',False) and check_systemd():