summaryrefslogtreecommitdiffstats
path: root/src/lib/service
diff options
context:
space:
mode:
authorPS <p@0x53.net>2026-02-01 12:06:01 +0100
committerPS <p@0x53.net>2026-02-01 12:06:01 +0100
commit0f936e1351d95d7b7bb8ac4b64fc2a87f2982d8c (patch)
tree30e5af481a10ad099076ec172542a8dc8ffeea58 /src/lib/service
downloadgoetia-freebsd-init-0f936e1351d95d7b7bb8ac4b64fc2a87f2982d8c.tar.gz
goetia-freebsd-init-0f936e1351d95d7b7bb8ac4b64fc2a87f2982d8c.tar.bz2
goetia-freebsd-init-0f936e1351d95d7b7bb8ac4b64fc2a87f2982d8c.zip
version 0.2.0.0
Diffstat (limited to 'src/lib/service')
-rw-r--r--src/lib/service/system/goetia-shutdown/down0
-rwxr-xr-xsrc/lib/service/system/goetia-shutdown/run7
-rw-r--r--src/lib/service/system/goetia-shutdown/stage3b14
-rw-r--r--src/lib/service/system/goetia-shutdown/stage414
4 files changed, 35 insertions, 0 deletions
diff --git a/src/lib/service/system/goetia-shutdown/down b/src/lib/service/system/goetia-shutdown/down
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/service/system/goetia-shutdown/down
diff --git a/src/lib/service/system/goetia-shutdown/run b/src/lib/service/system/goetia-shutdown/run
new file mode 100755
index 0000000..32f37fe
--- /dev/null
+++ b/src/lib/service/system/goetia-shutdown/run
@@ -0,0 +1,7 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+fdmove -c 2 1
+
+system-shutdown-daemon
diff --git a/src/lib/service/system/goetia-shutdown/stage3b b/src/lib/service/system/goetia-shutdown/stage3b
new file mode 100644
index 0000000..3daf81f
--- /dev/null
+++ b/src/lib/service/system/goetia-shutdown/stage3b
@@ -0,0 +1,14 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+if -n {
+ tryexec { ./stage4 }
+ foreground { chmod u+x stage4 }
+
+ foreground { kill -SIGCONT -- -1 }
+ foreground { sleep 1 }
+ foreground { echo sending all processes the KILL signal... }
+ foreground { kill -SIGKILL -- -1 }
+}
+chmod a-x stage3b stage4
diff --git a/src/lib/service/system/goetia-shutdown/stage4 b/src/lib/service/system/goetia-shutdown/stage4
new file mode 100644
index 0000000..d8e8bcc
--- /dev/null
+++ b/src/lib/service/system/goetia-shutdown/stage4
@@ -0,0 +1,14 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+if -n {
+ s6-envdir -I @tmpfsdir@/@sysrundir@/shutdown-directive
+ importas -SD "-r" DIRECTIVE
+
+ foreground { umount -A }
+ foreground { mount -ur / }
+
+ shutdown -o ${DIRECTIVE} now
+}
+chmod a-x stage3b stage4