aboutsummaryrefslogtreecommitdiffstats
path: root/community/efs-utils/efs-utils_openrc.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/efs-utils/efs-utils_openrc.patch')
-rw-r--r--community/efs-utils/efs-utils_openrc.patch41
1 files changed, 41 insertions, 0 deletions
diff --git a/community/efs-utils/efs-utils_openrc.patch b/community/efs-utils/efs-utils_openrc.patch
new file mode 100644
index 00000000000..7dd135e4c6a
--- /dev/null
+++ b/community/efs-utils/efs-utils_openrc.patch
@@ -0,0 +1,41 @@
+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