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:
parent
1ca4543e48
commit
e65c0f896a
1 changed files with 1 additions and 16 deletions
|
@ -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():
|
||||
|
|
Loading…
Reference in a new issue