summaryrefslogtreecommitdiff
path: root/examples/ROOT/img
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2015-10-06 16:23:19 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2015-10-06 16:23:19 +0000
commit4da6b9c320e6b49d38af5cb6b5861480141f24cd (patch)
treec920b72f5f291a29a71ca009ce113e4846b8a217 /examples/ROOT/img
parent478dd24279f833042a94590df0726d163b576af5 (diff)
downloads6-4da6b9c320e6b49d38af5cb6b5861480141f24cd.tar.xz
- add -s support to s6-svscan
- change examples to support -s - change examples to invoke s6-rc, remove servicedirs
Diffstat (limited to 'examples/ROOT/img')
-rw-r--r--examples/ROOT/img/README11
-rw-r--r--examples/ROOT/img/services-local/README5
-rw-r--r--examples/ROOT/img/services-local/klogd-linux/README3
-rw-r--r--examples/ROOT/img/services-local/klogd-linux/log/README1
-rwxr-xr-xexamples/ROOT/img/services-local/klogd-linux/log/run4
-rwxr-xr-xexamples/ROOT/img/services-local/klogd-linux/run5
-rw-r--r--examples/ROOT/img/services-local/syslogd-linux/README7
-rw-r--r--examples/ROOT/img/services-local/syslogd-linux/log/README9
-rw-r--r--examples/ROOT/img/services-local/syslogd-linux/log/env/LOGSCRIPT6
-rwxr-xr-xexamples/ROOT/img/services-local/syslogd-linux/log/run8
-rw-r--r--examples/ROOT/img/services-local/syslogd-linux/notification-fd1
-rwxr-xr-xexamples/ROOT/img/services-local/syslogd-linux/run8
-rw-r--r--examples/ROOT/img/services-network/README5
-rw-r--r--examples/ROOT/img/services-network/dns-cache/README2
-rw-r--r--examples/ROOT/img/services-network/dns-cache/env/CACHESIZE1
-rw-r--r--examples/ROOT/img/services-network/dns-cache/env/IP1
-rw-r--r--examples/ROOT/img/services-network/dns-cache/env/IPSEND1
-rw-r--r--examples/ROOT/img/services-network/dns-cache/env/ROOT1
-rw-r--r--examples/ROOT/img/services-network/dns-cache/log/README3
-rwxr-xr-xexamples/ROOT/img/services-network/dns-cache/log/run4
-rw-r--r--examples/ROOT/img/services-network/dns-cache/root/ip/127.0.0.10
-rw-r--r--examples/ROOT/img/services-network/dns-cache/root/servers/@13
-rwxr-xr-xexamples/ROOT/img/services-network/dns-cache/run12
-rw-r--r--examples/ROOT/img/services-network/fifodir-cleanup/README2
-rwxr-xr-xexamples/ROOT/img/services-network/fifodir-cleanup/run14
-rw-r--r--examples/ROOT/img/services-network/ntpclient/README9
-rw-r--r--examples/ROOT/img/services-network/ntpclient/log/README3
-rwxr-xr-xexamples/ROOT/img/services-network/ntpclient/log/run4
-rwxr-xr-xexamples/ROOT/img/services-network/ntpclient/run19
-rw-r--r--examples/ROOT/img/services-network/sshd/README5
-rw-r--r--examples/ROOT/img/services-network/sshd/log/README1
-rwxr-xr-xexamples/ROOT/img/services-network/sshd/log/run4
-rw-r--r--examples/ROOT/img/services-network/sshd/notification-fd1
-rw-r--r--examples/ROOT/img/services-network/sshd/rules/ip4/0.0.0.0_0/deny0
-rw-r--r--examples/ROOT/img/services-network/sshd/rules/ip4/127.0.0.1_32/allow0
-rwxr-xr-xexamples/ROOT/img/services-network/sshd/run6
-rw-r--r--examples/ROOT/img/tmpfs/service/.s6-svscan/README11
-rwxr-xr-xexamples/ROOT/img/tmpfs/service/.s6-svscan/SIGINT3
-rwxr-xr-xexamples/ROOT/img/tmpfs/service/.s6-svscan/SIGUSR13
-rwxr-xr-xexamples/ROOT/img/tmpfs/service/.s6-svscan/SIGUSR23
-rwxr-xr-x[l---------]examples/ROOT/img/tmpfs/service/.s6-svscan/crash14
41 files changed, 34 insertions, 179 deletions
diff --git a/examples/ROOT/img/README b/examples/ROOT/img/README
index 8181be3..185a3e6 100644
--- a/examples/ROOT/img/README
+++ b/examples/ROOT/img/README
@@ -1,9 +1,4 @@
-This directory is read-only. It contains the service
-repository (actually one list of services that do not
-need the network and one list of services that can only
-be started after the network is up), and an image of the
+This directory is read-only. It contains an image of the
tmpfs that it copied as-is at boot-time (during stage 1
-init).
-This directory is only used at boot-time, it is never
-written to (the service directories are copied as-is
-to /service during stage 2 init).
+init). It is only used at boot-time, it is never
+written to.
diff --git a/examples/ROOT/img/services-local/README b/examples/ROOT/img/services-local/README
deleted file mode 100644
index 9e4c027..0000000
--- a/examples/ROOT/img/services-local/README
+++ /dev/null
@@ -1,5 +0,0 @@
-This is the service repository for services that should be started
-early, typically before the network goes up.
-"klogd" and "syslogd" services should be present as soon as possible,
-because other services might need them. However, since they need
-a writable disk filesystem, they can't be run as early as a getty.
diff --git a/examples/ROOT/img/services-local/klogd-linux/README b/examples/ROOT/img/services-local/klogd-linux/README
deleted file mode 100644
index ec95a00..0000000
--- a/examples/ROOT/img/services-local/klogd-linux/README
+++ /dev/null
@@ -1,3 +0,0 @@
-This klogd emulation is only valid under Linux.
-The service only processes logs from /proc/kmsg and
-sends them to stdout, i.e. its own logger.
diff --git a/examples/ROOT/img/services-local/klogd-linux/log/README b/examples/ROOT/img/services-local/klogd-linux/log/README
deleted file mode 100644
index 6b51a4a..0000000
--- a/examples/ROOT/img/services-local/klogd-linux/log/README
+++ /dev/null
@@ -1 +0,0 @@
-Processed kernel logs will be logged to the /var/log/klogd/ logdir.
diff --git a/examples/ROOT/img/services-local/klogd-linux/log/run b/examples/ROOT/img/services-local/klogd-linux/log/run
deleted file mode 100755
index d9659e7..0000000
--- a/examples/ROOT/img/services-local/klogd-linux/log/run
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/command/execlineb -P
-s6-setuidgid klog
-exec -c
-s6-log t s1000000 n20 /var/log/klogd
diff --git a/examples/ROOT/img/services-local/klogd-linux/run b/examples/ROOT/img/services-local/klogd-linux/run
deleted file mode 100755
index 453b55b..0000000
--- a/examples/ROOT/img/services-local/klogd-linux/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/command/execlineb -P
-fdmove -c 2 1
-redirfd -r 0 /proc/kmsg
-exec -c
-ucspilogd
diff --git a/examples/ROOT/img/services-local/syslogd-linux/README b/examples/ROOT/img/services-local/syslogd-linux/README
deleted file mode 100644
index a3c3ba4..0000000
--- a/examples/ROOT/img/services-local/syslogd-linux/README
+++ /dev/null
@@ -1,7 +0,0 @@
-This syslogd emulation works on any Unix where syslog() is
-implemented via a connection on the /dev/log Unix-domain socket.
-It needs a Unix superserver (see s6-networking, ucspi-unix or
-ucspi-ipc) and ucspilogd.
-A ucspilogd process is spawned for every syslog() client. It
-processes logs and sends them to stderr, i.e. the service's
-logger.
diff --git a/examples/ROOT/img/services-local/syslogd-linux/log/README b/examples/ROOT/img/services-local/syslogd-linux/log/README
deleted file mode 100644
index 9d4968e..0000000
--- a/examples/ROOT/img/services-local/syslogd-linux/log/README
+++ /dev/null
@@ -1,9 +0,0 @@
- This logger service logs everything the syslogd service receives
-into subdirectories of /var/log/syslogd/ logdir.
-
- The script provided in env/LOGSCRIPT emulates the default
-syslogd behaviour on a majority of Linux distributions.
-
- Note that spaces cannot be used as is in the LOGSCRIPT file,
-because they are delimiters for the splitting of $LOGSCRIPT
-in the run script. So \s is used instead.
diff --git a/examples/ROOT/img/services-local/syslogd-linux/log/env/LOGSCRIPT b/examples/ROOT/img/services-local/syslogd-linux/log/env/LOGSCRIPT
deleted file mode 100644
index e7a1eb7..0000000
--- a/examples/ROOT/img/services-local/syslogd-linux/log/env/LOGSCRIPT
+++ /dev/null
@@ -1,6 +0,0 @@
-- +^[0-9]+:\s[0-9]+:\serror\. t /var/log/syslogd/error
-- +^[0-9]+:\s[0-9]+:\sauthpriv\. t /var/log/syslogd/auth
-- +^[0-9]+:\s[0-9]+:\suser\. t /var/log/syslogd/user
-- +^[0-9]+:\s[0-9]+:\smessages\. t /var/log/syslogd/messages
-- +^[0-9]+:\s[0-9]+:\sdaemon\. t /var/log/syslogd/daemon
-f t /var/log/syslogd/misc
diff --git a/examples/ROOT/img/services-local/syslogd-linux/log/run b/examples/ROOT/img/services-local/syslogd-linux/log/run
deleted file mode 100755
index 56de271..0000000
--- a/examples/ROOT/img/services-local/syslogd-linux/log/run
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/command/execlineb -P
-s6-setuidgid syslog
-s6-envdir -f env
-import -Cs LOGSCRIPT
-exec -c
-s6-log $LOGSCRIPT
-
-# Change env/LOGSCRIPT to alter s6-log's behaviour
diff --git a/examples/ROOT/img/services-local/syslogd-linux/notification-fd b/examples/ROOT/img/services-local/syslogd-linux/notification-fd
deleted file mode 100644
index 00750ed..0000000
--- a/examples/ROOT/img/services-local/syslogd-linux/notification-fd
+++ /dev/null
@@ -1 +0,0 @@
-3
diff --git a/examples/ROOT/img/services-local/syslogd-linux/run b/examples/ROOT/img/services-local/syslogd-linux/run
deleted file mode 100755
index de33c2c..0000000
--- a/examples/ROOT/img/services-local/syslogd-linux/run
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/command/execlineb -P
-fdmove -c 2 1
-exec -c
-s6-envuidgid nobody
-fdmove 1 3
-s6-ipcserver -U -1 -- /dev/log
-fdmove -c 1 2
-ucspilogd IPCREMOTEEUID IPCREMOTEEGID
diff --git a/examples/ROOT/img/services-network/README b/examples/ROOT/img/services-network/README
deleted file mode 100644
index 9f4ab38..0000000
--- a/examples/ROOT/img/services-network/README
+++ /dev/null
@@ -1,5 +0,0 @@
-This is the service repository for all the late services,
-i.e. those that do not need to be started before the network
-is up.
-Only a few examples are provided here; you can make your own
-service directories depending on your needs.
diff --git a/examples/ROOT/img/services-network/dns-cache/README b/examples/ROOT/img/services-network/dns-cache/README
deleted file mode 100644
index 8fc5c28..0000000
--- a/examples/ROOT/img/services-network/dns-cache/README
+++ /dev/null
@@ -1,2 +0,0 @@
-Service directory for a DNS caching resolver service,
-implemented via djbdns's dnscache running on 127.0.0.1
diff --git a/examples/ROOT/img/services-network/dns-cache/env/CACHESIZE b/examples/ROOT/img/services-network/dns-cache/env/CACHESIZE
deleted file mode 100644
index 6820bf1..0000000
--- a/examples/ROOT/img/services-network/dns-cache/env/CACHESIZE
+++ /dev/null
@@ -1 +0,0 @@
-1048576
diff --git a/examples/ROOT/img/services-network/dns-cache/env/IP b/examples/ROOT/img/services-network/dns-cache/env/IP
deleted file mode 100644
index 7b9ad53..0000000
--- a/examples/ROOT/img/services-network/dns-cache/env/IP
+++ /dev/null
@@ -1 +0,0 @@
-127.0.0.1
diff --git a/examples/ROOT/img/services-network/dns-cache/env/IPSEND b/examples/ROOT/img/services-network/dns-cache/env/IPSEND
deleted file mode 100644
index d690dc0..0000000
--- a/examples/ROOT/img/services-network/dns-cache/env/IPSEND
+++ /dev/null
@@ -1 +0,0 @@
-0.0.0.0
diff --git a/examples/ROOT/img/services-network/dns-cache/env/ROOT b/examples/ROOT/img/services-network/dns-cache/env/ROOT
deleted file mode 100644
index 0a89945..0000000
--- a/examples/ROOT/img/services-network/dns-cache/env/ROOT
+++ /dev/null
@@ -1 +0,0 @@
-/service/dns-cache/root
diff --git a/examples/ROOT/img/services-network/dns-cache/log/README b/examples/ROOT/img/services-network/dns-cache/log/README
deleted file mode 100644
index 55676f1..0000000
--- a/examples/ROOT/img/services-network/dns-cache/log/README
+++ /dev/null
@@ -1,3 +0,0 @@
-Logger service for the dns-cache service.
-djbdns's dnscache produces a lot of output, so
-you may want to add log filters.
diff --git a/examples/ROOT/img/services-network/dns-cache/log/run b/examples/ROOT/img/services-network/dns-cache/log/run
deleted file mode 100755
index 4177eaa..0000000
--- a/examples/ROOT/img/services-network/dns-cache/log/run
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/command/execlineb -P
-s6-setuidgid dnslog
-exec -c
-s6-log t s1000000 n20 /var/log/dns-cache
diff --git a/examples/ROOT/img/services-network/dns-cache/root/ip/127.0.0.1 b/examples/ROOT/img/services-network/dns-cache/root/ip/127.0.0.1
deleted file mode 100644
index e69de29..0000000
--- a/examples/ROOT/img/services-network/dns-cache/root/ip/127.0.0.1
+++ /dev/null
diff --git a/examples/ROOT/img/services-network/dns-cache/root/servers/@ b/examples/ROOT/img/services-network/dns-cache/root/servers/@
deleted file mode 100644
index ca40b38..0000000
--- a/examples/ROOT/img/services-network/dns-cache/root/servers/@
+++ /dev/null
@@ -1,13 +0,0 @@
-198.41.0.4
-192.228.79.201
-192.33.4.12
-128.8.10.90
-192.203.230.10
-192.5.5.241
-192.112.36.4
-128.63.2.53
-192.36.148.17
-192.58.128.30
-193.0.14.129
-199.7.83.42
-202.12.27.33
diff --git a/examples/ROOT/img/services-network/dns-cache/run b/examples/ROOT/img/services-network/dns-cache/run
deleted file mode 100755
index af92aae..0000000
--- a/examples/ROOT/img/services-network/dns-cache/run
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/command/execlineb -P
-fdmove -c 2 1
-s6-envuidgid dnscache
-s6-envdir env
-s6-softlimit -m 2000000
-pipeline -d
-{
- redirfd -r 0 /dev/urandom
- s6-head -c 128
-}
-unexport !
-dnscache
diff --git a/examples/ROOT/img/services-network/fifodir-cleanup/README b/examples/ROOT/img/services-network/fifodir-cleanup/README
deleted file mode 100644
index 2c41ea2..0000000
--- a/examples/ROOT/img/services-network/fifodir-cleanup/README
+++ /dev/null
@@ -1,2 +0,0 @@
-This service cleans up the fifodirs for all the services in
-/service once a day.
diff --git a/examples/ROOT/img/services-network/fifodir-cleanup/run b/examples/ROOT/img/services-network/fifodir-cleanup/run
deleted file mode 100755
index 9928d84..0000000
--- a/examples/ROOT/img/services-network/fifodir-cleanup/run
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/command/execlineb -P
-fdmove -c 2 1
-if
-{
- forbacktickx -p -0 i { s6-ls -0 /service }
- import i unexport i
- foreground
- {
- if { s6-test -d /service/${i}/log }
- s6-cleanfifodir /service/${i}/log/event
- }
- s6-cleanfifodir /service/${i}/event
-}
-s6-sleep 86400
diff --git a/examples/ROOT/img/services-network/ntpclient/README b/examples/ROOT/img/services-network/ntpclient/README
deleted file mode 100644
index c4fc357..0000000
--- a/examples/ROOT/img/services-network/ntpclient/README
+++ /dev/null
@@ -1,9 +0,0 @@
-This service updates the system clock via NTP every 4 hours.
-If you're not in France, change 0.fr.pool.ntp.org to a NTP
-server pool more fitting your location.
-See www.ntp.pool.org for details.
-
-Do yourself a favor and don't rely on NTP internally.
-Just synchronize your main time server via this NTP client
-to the outside world, and use a saner and simpler protocol
-like TAICLOCK in your internal, fast-speed network.
diff --git a/examples/ROOT/img/services-network/ntpclient/log/README b/examples/ROOT/img/services-network/ntpclient/log/README
deleted file mode 100644
index e4c7a37..0000000
--- a/examples/ROOT/img/services-network/ntpclient/log/README
+++ /dev/null
@@ -1,3 +0,0 @@
-Yes, the output of the ntpclient service is logged to
-the /var/log/ntpclient logdir.
-Make sure it has the correct Unix credentials and permissions!
diff --git a/examples/ROOT/img/services-network/ntpclient/log/run b/examples/ROOT/img/services-network/ntpclient/log/run
deleted file mode 100755
index 80d7b5b..0000000
--- a/examples/ROOT/img/services-network/ntpclient/log/run
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/command/execlineb -P
-s6-setuidgid ntplog
-exec -c
-s6-log t /var/log/ntpclient
diff --git a/examples/ROOT/img/services-network/ntpclient/run b/examples/ROOT/img/services-network/ntpclient/run
deleted file mode 100755
index 7ade064..0000000
--- a/examples/ROOT/img/services-network/ntpclient/run
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/command/execlineb -P
-
-fdmove -c 2 1
-if
-{
- pipeline
- {
- s6-setuidgid ntp
- backtick -n NTPSERVERIP
- {
- pipeline { s6-dnsip4 -t 16000 0.fr.pool.ntp.org. }
- s6-head -n 1
- }
- s6-sntpclock -v $NTPSERVERIP
- }
- s6-clockadd
-}
-s6-setuidgid nobody
-s6-sleep 14400
diff --git a/examples/ROOT/img/services-network/sshd/README b/examples/ROOT/img/services-network/sshd/README
deleted file mode 100644
index 2d55a5e..0000000
--- a/examples/ROOT/img/services-network/sshd/README
+++ /dev/null
@@ -1,5 +0,0 @@
-Service directory for a sshd server over IPv4,
-implemented via s6-networking and dropbear.
-The rules subdirectory implements access control; in
-this example, only 127.0.0.1 is allowed to connect
-(which isn't exactly useful for a SSH server).
diff --git a/examples/ROOT/img/services-network/sshd/log/README b/examples/ROOT/img/services-network/sshd/log/README
deleted file mode 100644
index 392ede8..0000000
--- a/examples/ROOT/img/services-network/sshd/log/README
+++ /dev/null
@@ -1 +0,0 @@
-Logging service for sshd.
diff --git a/examples/ROOT/img/services-network/sshd/log/run b/examples/ROOT/img/services-network/sshd/log/run
deleted file mode 100755
index d07f180..0000000
--- a/examples/ROOT/img/services-network/sshd/log/run
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/command/execlineb -P
-s6-setuidgid log
-exec -c
-s6-log t s1000000 n20 /var/log/sshd
diff --git a/examples/ROOT/img/services-network/sshd/notification-fd b/examples/ROOT/img/services-network/sshd/notification-fd
deleted file mode 100644
index 00750ed..0000000
--- a/examples/ROOT/img/services-network/sshd/notification-fd
+++ /dev/null
@@ -1 +0,0 @@
-3
diff --git a/examples/ROOT/img/services-network/sshd/rules/ip4/0.0.0.0_0/deny b/examples/ROOT/img/services-network/sshd/rules/ip4/0.0.0.0_0/deny
deleted file mode 100644
index e69de29..0000000
--- a/examples/ROOT/img/services-network/sshd/rules/ip4/0.0.0.0_0/deny
+++ /dev/null
diff --git a/examples/ROOT/img/services-network/sshd/rules/ip4/127.0.0.1_32/allow b/examples/ROOT/img/services-network/sshd/rules/ip4/127.0.0.1_32/allow
deleted file mode 100644
index e69de29..0000000
--- a/examples/ROOT/img/services-network/sshd/rules/ip4/127.0.0.1_32/allow
+++ /dev/null
diff --git a/examples/ROOT/img/services-network/sshd/run b/examples/ROOT/img/services-network/sshd/run
deleted file mode 100755
index 3a35a11..0000000
--- a/examples/ROOT/img/services-network/sshd/run
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/command/execlineb -P
-fdmove -c 2 1
-fdmove 1 3
-s6-tcpserver4 -1 -- 0.0.0.0 22
-s6-tcpserver-access -vvDRl0 -t 5000 -i rules
-dropbear -iEg
diff --git a/examples/ROOT/img/tmpfs/service/.s6-svscan/README b/examples/ROOT/img/tmpfs/service/.s6-svscan/README
index 6500cc6..f61dc8d 100644
--- a/examples/ROOT/img/tmpfs/service/.s6-svscan/README
+++ b/examples/ROOT/img/tmpfs/service/.s6-svscan/README
@@ -1,2 +1,9 @@
-This is the image of the control directory of the s6-svscan process.
-Notice how the symlinks point to ever-existing scripts.
+This is the image of the control directory of the s6-svscan process
+running as pid 1.
+"crash" is run if s6-svscan fails.
+"finish" is run when s6-svscan exits its loop.
+
+ The "SIG*" files are run as children of s6-svscan when it receives
+the corresponding signal. SIGINT, SIGUSR1 and SIGUSR2 will all
+trigger "s6-rc -da change" (the service manager will shut down all
+the services), then s6-svscan will be told to exit its loop.
diff --git a/examples/ROOT/img/tmpfs/service/.s6-svscan/SIGINT b/examples/ROOT/img/tmpfs/service/.s6-svscan/SIGINT
new file mode 100755
index 0000000..f0ff213
--- /dev/null
+++ b/examples/ROOT/img/tmpfs/service/.s6-svscan/SIGINT
@@ -0,0 +1,3 @@
+#!/command/execlineb -P
+foreground { s6-rc -da change }
+s6-svscanctl -6 .
diff --git a/examples/ROOT/img/tmpfs/service/.s6-svscan/SIGUSR1 b/examples/ROOT/img/tmpfs/service/.s6-svscan/SIGUSR1
new file mode 100755
index 0000000..cb4a4ef
--- /dev/null
+++ b/examples/ROOT/img/tmpfs/service/.s6-svscan/SIGUSR1
@@ -0,0 +1,3 @@
+#!/command/execlineb -P
+foreground { s6-rc -da change }
+s6-svscanctl -0 .
diff --git a/examples/ROOT/img/tmpfs/service/.s6-svscan/SIGUSR2 b/examples/ROOT/img/tmpfs/service/.s6-svscan/SIGUSR2
new file mode 100755
index 0000000..e5932be
--- /dev/null
+++ b/examples/ROOT/img/tmpfs/service/.s6-svscan/SIGUSR2
@@ -0,0 +1,3 @@
+#!/command/execlineb -P
+foreground { s6-rc -da change }
+s6-svscanctl -7 .
diff --git a/examples/ROOT/img/tmpfs/service/.s6-svscan/crash b/examples/ROOT/img/tmpfs/service/.s6-svscan/crash
index 262c196..501e316 120000..100755
--- a/examples/ROOT/img/tmpfs/service/.s6-svscan/crash
+++ b/examples/ROOT/img/tmpfs/service/.s6-svscan/crash
@@ -1 +1,13 @@
-/etc/s6-init/crash \ No newline at end of file
+#!/command/execlineb -P
+
+# This file is run when an unrecoverable error happens
+# to s6-svscan. Edit it to suit your needs.
+
+cd /
+redirfd -r 0 /dev/console
+redirfd -w 1 /dev/console
+fdmove -c 2 1
+
+foreground { s6-echo "s6-svscan panicked! Dropping to a root shell.\n" }
+
+/bin/sh -i