summaryrefslogtreecommitdiff
path: root/examples/ROOT/img/tmpfs/service
diff options
context:
space:
mode:
Diffstat (limited to 'examples/ROOT/img/tmpfs/service')
-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
5 files changed, 31 insertions, 3 deletions
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