mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-11-01 08:51:47 +01:00
42 lines
1.6 KiB
Diff
42 lines
1.6 KiB
Diff
diff --git a/src/mount_efs/__init__.py b/src/mount_efs/__init__.py
|
|
index c6a8850..a85a7bf 100755
|
|
--- a/src/mount_efs/__init__.py
|
|
+++ b/src/mount_efs/__init__.py
|
|
@@ -1294,6 +1294,11 @@ def get_init_system(comm_file="/proc/1/comm"):
|
|
init_system = f.read().strip()
|
|
except IOError:
|
|
logging.warning("Unable to read %s", comm_file)
|
|
+
|
|
+ # OpenRC init system manages services a little differently
|
|
+ if init_system == "init" and os.path.isfile("/sbin/openrc"):
|
|
+ init_system = "openrc-init"
|
|
+ logging.debug("Detected OpenRC init system")
|
|
else:
|
|
init_system = "launchd"
|
|
|
|
@@ -1353,6 +1358,24 @@ def start_watchdog(init_system):
|
|
elif "start" in str(status):
|
|
logging.debug("%s is already running", WATCHDOG_SERVICE)
|
|
|
|
+ elif init_system == "openrc-init":
|
|
+ proc = subprocess.Popen(
|
|
+ ["/sbin/service", WATCHDOG_SERVICE, "status"],
|
|
+ stdout=subprocess.PIPE,
|
|
+ stderr=subprocess.PIPE,
|
|
+ close_fds=True,
|
|
+ )
|
|
+ status, _ = proc.communicate()
|
|
+ if "stopped" in str(status):
|
|
+ subprocess.Popen(
|
|
+ ["/sbin/service", WATCHDOG_SERVICE, "start"],
|
|
+ stdout=subprocess.DEVNULL,
|
|
+ stderr=subprocess.DEVNULL,
|
|
+ close_fds=True,
|
|
+ )
|
|
+ elif "started" in str(status):
|
|
+ logging.debug("%s is already running", WATCHDOG_SERVICE)
|
|
+
|
|
elif init_system == "systemd":
|
|
rc = subprocess.call(
|
|
["systemctl", "is-active", "--quiet", WATCHDOG_SERVICE], close_fds=True
|