aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin/user-shutdown
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/user-shutdown')
-rwxr-xr-xsrc/bin/user-shutdown23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/bin/user-shutdown b/src/bin/user-shutdown
new file mode 100755
index 0000000..9376f5b
--- /dev/null
+++ b/src/bin/user-shutdown
@@ -0,0 +1,23 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+multisubstitute {
+ importas -Si USER
+ importas -Si USERTREE
+}
+backtick -Ei HOME { homeof ${USER} }
+
+if -x0 { eltest -d @tmpfsdir@/@usrrundir@/${USER}/${USERTREE} }
+
+redirfd -wnb 1 @tmpfsdir@/@usrrundir@/${USER}/${USERTREE}/service/s6-svscan-log/fifo
+fdmove -c 2 1
+
+foreground {
+ foreground { echo "\nshutdown\n" }
+ s6-rc -l @tmpfsdir@/@usrrundir@/${USER}/${USERTREE}/s6-rc -v2 -b -da -t@timeout@ change
+}
+
+foreground { s6-svscanctl -t @tmpfsdir@/@usrrundir@/${USER}/${USERTREE}/service }
+foreground { s6-svc -h @tmpfsdir@/@usrrundir@/${USER}/${USERTREE}/service/s6-svscan-log }
+foreground { rm -Rf @tmpfsdir@/@usrrundir@/${USER}/${USERTREE} }