about summary refs log tree commit diff
path: root/bundles/s6/files/etc/init.d
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/s6/files/etc/init.d')
-rwxr-xr-xbundles/s6/files/etc/init.d/s6-rc-init56
-rwxr-xr-xbundles/s6/files/etc/init.d/s6-rc-up37
2 files changed, 93 insertions, 0 deletions
diff --git a/bundles/s6/files/etc/init.d/s6-rc-init b/bundles/s6/files/etc/init.d/s6-rc-init
new file mode 100755
index 0000000..df1cd78
--- /dev/null
+++ b/bundles/s6/files/etc/init.d/s6-rc-init
@@ -0,0 +1,56 @@
+#!/sbin/openrc-run
+
+description="Initialize s6-rc"
+
+source /etc/conf.d/s6-rc-common
+
+depend()
+{
+        need localmount
+}
+
+start()
+{
+        s6-rc-generate ${s6_rc_generated}
+
+        local lower=$s6_rc_base
+        test -e "$lower" || eerror "Missing lower: $lower"
+
+        local upper=$s6_rc_generated
+        test -e "$upper" || eerror "Missing upper: $upper"
+
+        # mandatory for overlayfs, though not used because we mount read-only
+        local workdir=${s6_rc_merged}.ovlwork
+        mkdir -p ${workdir}
+
+        # create mountpoint
+        mkdir -p ${s6_rc_merged}
+
+        mount -t overlay overlay \
+                -o lowerdir=${lower},upperdir=${upper},workdir=${workdir},ro \
+                ${s6_rc_merged}
+
+        test -e /etc/s6-rc/compiled || s6-rc-recompile ${s6_rc_merged}
+
+        test -e /run/s6-rc || s6-rc-init -bd -t 3000 "${RC_SVCDIR}"/s6-scan
+}
+
+stop()
+{
+        rm -rf ${s6_rc_generated}
+
+        umount ${s6_rc_merged}
+        rm -rf ${s6_rc_merged}.ovlwork
+}
+
+reload()
+{
+        s6-rc-generate ${s6_rc_generated}
+
+        s6-rc-recompile ${s6_rc_merged}
+
+        s6-rc -v2 -upb -t "$s6_rc_timeout" change default
+}
+
+
+extra_commands="reload"
diff --git a/bundles/s6/files/etc/init.d/s6-rc-up b/bundles/s6/files/etc/init.d/s6-rc-up
new file mode 100755
index 0000000..a2c1dee
--- /dev/null
+++ b/bundles/s6/files/etc/init.d/s6-rc-up
@@ -0,0 +1,37 @@
+#!/sbin/openrc-run
+
+description="Bring up s6-rc services."
+
+source /etc/conf.d/s6-rc-common
+
+depend()
+{
+        need s6-svscan localmount
+        use s6-rc-init
+
+        need network-online
+        use net
+
+        after podman
+}
+
+start()
+{
+        s6-rc -v2 -upb -t "$s6_rc_timeout" change default
+}
+
+stop()
+{
+        s6-rc -v2 -dpb -t "$s6_rc_timeout" change default
+}
+
+cleanup()
+{
+        rc-service s6-svscan stop || true # HACK
+        rm -rfv /etc/s6-rc/compiled
+        rm -rfv /etc/s6-rc/_*
+        rm -rfv /run/s6-rc
+        rm -rfv /run/openrc/s6-scan # HACK
+}
+
+extra_commands="cleanup"