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.
pull/18777/head
Simon Hafner 9 years ago committed by Matt Clay
parent 45012ea723
commit 4af48e139c

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

Loading…
Cancel
Save