diff options
Diffstat (limited to 'bundles/s6/files/etc/init.d')
| -rwxr-xr-x | bundles/s6/files/etc/init.d/s6-rc-init | 56 | ||||
| -rwxr-xr-x | bundles/s6/files/etc/init.d/s6-rc-up | 37 |
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" |