aboutsummaryrefslogtreecommitdiff
path: root/init.d
diff options
context:
space:
mode:
Diffstat (limited to 'init.d')
-rw-r--r--init.d/Makefile2
-rw-r--r--init.d/s6-svscan.in31
2 files changed, 32 insertions, 1 deletions
diff --git a/init.d/Makefile b/init.d/Makefile
index 0bd3651b..a662f8d7 100644
--- a/init.d/Makefile
+++ b/init.d/Makefile
@@ -3,7 +3,7 @@ include ../mk/net.mk
DIR= ${INITDIR}
SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in loopback.in \
netmount.in osclock.in root.in savecache.in swap.in swapfiles.in \
- tmpfiles.setup.in swclock.in sysctl.in urandom.in ${SRCS-${OS}}
+ tmpfiles.setup.in swclock.in sysctl.in urandom.in s6-svscan.in ${SRCS-${OS}}
BIN= ${OBJS}
# Are we installing our network scripts?
diff --git a/init.d/s6-svscan.in b/init.d/s6-svscan.in
new file mode 100644
index 00000000..6fdf4e1d
--- /dev/null
+++ b/init.d/s6-svscan.in
@@ -0,0 +1,31 @@
+#!@SBINDIR@/openrc-run
+# Copyright (C) 2015 William Hubbs <w.d.hubbs@gmail.com>
+# Released under the 2-clause BSD license.
+
+command=/bin/s6-svscan
+command_args="${RC_SVCDIR}"/s6-scan
+command_background=yes
+pidfile=/var/run/s6-svscan.pid
+
+depend()
+{
+ need localmount
+}
+
+start_pre()
+{
+ einfo "Creating s6 scan directory"
+ checkpath -d -m 0755 "$RC_SVCDIR"/s6-scan
+ return $?
+}
+
+stop_post()
+{
+ ebegin "Stopping any remaining s6 services"
+ s6-svc -dx "${RC_SVCDIR}"/s6-scan/* 2>/dev/null || true
+ eend $?
+
+ ebegin "Stopping any remaining s6 service loggers"
+ s6-svc -dx "${RC_SVCDIR}"/s6-scan/*/log 2>/dev/null || true
+ eend $?
+}