summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/deps.mak24
-rw-r--r--package/modes11
-rw-r--r--package/targets.mak24
-rwxr-xr-xsrc/bin/prepare-svscan2
-rwxr-xr-xsrc/bin/system-shutdown-daemon2
-rwxr-xr-xsrc/bin/user-init4
-rwxr-xr-xsrc/bin/user-shutdown15
-rwxr-xr-xsrc/lib/service/system/.s6-svscan/SIGINT5
-rwxr-xr-xsrc/lib/service/system/.s6-svscan/SIGPWR5
-rwxr-xr-xsrc/lib/service/system/.s6-svscan/SIGQUIT2
-rwxr-xr-xsrc/lib/service/system/.s6-svscan/SIGTERM2
-rwxr-xr-xsrc/lib/service/system/.s6-svscan/SIGUSR15
-rwxr-xr-xsrc/lib/service/system/.s6-svscan/SIGUSR25
-rwxr-xr-xsrc/lib/service/system/.s6-svscan/SIGWINCH2
-rwxr-xr-xsrc/lib/service/system/.s6-svscan/crash10
-rwxr-xr-xsrc/lib/service/system/.s6-svscan/finish9
-rw-r--r--src/lib/service/user/.s6-svscan/finish8
-rw-r--r--src/lib/service/user/goetia-shutdown/down0
-rwxr-xr-xsrc/lib/service/user/goetia-shutdown/run20
19 files changed, 49 insertions, 106 deletions
diff --git a/package/deps.mak b/package/deps.mak
index 255ecdc..bb52f2c 100644
--- a/package/deps.mak
+++ b/package/deps.mak
@@ -38,24 +38,6 @@ service/system/s6-svscan-log/run: src/lib/service/system/s6-svscan-log/run
$(DESTDIR)$(libdir)/service/system/s6-svscan-log/run: service/system/s6-svscan-log/run
service/system/s6-svscan-log/notification-fd: src/lib/service/system/s6-svscan-log/notification-fd
$(DESTDIR)$(libdir)/service/system/s6-svscan-log/notification-fd: service/system/s6-svscan-log/notification-fd
-service/system/.s6-svscan/crash: src/lib/service/system/.s6-svscan/crash
-$(DESTDIR)$(libdir)/service/system/.s6-svscan/crash: service/system/.s6-svscan/crash
-service/system/.s6-svscan/SIGUSR1: src/lib/service/system/.s6-svscan/SIGUSR1
-$(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGUSR1: service/system/.s6-svscan/SIGUSR1
-service/system/.s6-svscan/finish: src/lib/service/system/.s6-svscan/finish
-$(DESTDIR)$(libdir)/service/system/.s6-svscan/finish: service/system/.s6-svscan/finish
-service/system/.s6-svscan/SIGQUIT: src/lib/service/system/.s6-svscan/SIGQUIT
-$(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGQUIT: service/system/.s6-svscan/SIGQUIT
-service/system/.s6-svscan/SIGINT: src/lib/service/system/.s6-svscan/SIGINT
-$(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGINT: service/system/.s6-svscan/SIGINT
-service/system/.s6-svscan/SIGUSR2: src/lib/service/system/.s6-svscan/SIGUSR2
-$(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGUSR2: service/system/.s6-svscan/SIGUSR2
-service/system/.s6-svscan/SIGWINCH: src/lib/service/system/.s6-svscan/SIGWINCH
-$(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGWINCH: service/system/.s6-svscan/SIGWINCH
-service/system/.s6-svscan/SIGTERM: src/lib/service/system/.s6-svscan/SIGTERM
-$(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGTERM: service/system/.s6-svscan/SIGTERM
-service/system/.s6-svscan/SIGPWR: src/lib/service/system/.s6-svscan/SIGPWR
-$(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGPWR: service/system/.s6-svscan/SIGPWR
service/system/s6-svscan-log-console/run: src/lib/service/system/s6-svscan-log-console/run
$(DESTDIR)$(libdir)/service/system/s6-svscan-log-console/run: service/system/s6-svscan-log-console/run
service/system/s6-svscan-log-console/notification-fd: src/lib/service/system/s6-svscan-log-console/notification-fd
@@ -68,8 +50,14 @@ service/user/s6-svscan-log/run: src/lib/service/user/s6-svscan-log/run
$(DESTDIR)$(libdir)/service/user/s6-svscan-log/run: service/user/s6-svscan-log/run
service/user/s6-svscan-log/notification-fd: src/lib/service/user/s6-svscan-log/notification-fd
$(DESTDIR)$(libdir)/service/user/s6-svscan-log/notification-fd: service/user/s6-svscan-log/notification-fd
+service/user/.s6-svscan/finish: src/lib/service/user/.s6-svscan/finish
+$(DESTDIR)$(libdir)/service/user/.s6-svscan/finish: service/user/.s6-svscan/finish
service/user/.s6-svscan/SIGTERM: src/lib/service/user/.s6-svscan/SIGTERM
$(DESTDIR)$(libdir)/service/user/.s6-svscan/SIGTERM: service/user/.s6-svscan/SIGTERM
+service/user/goetia-shutdown/run: src/lib/service/user/goetia-shutdown/run
+$(DESTDIR)$(libdir)/service/user/goetia-shutdown/run: service/user/goetia-shutdown/run
+service/user/goetia-shutdown/down: src/lib/service/user/goetia-shutdown/down
+$(DESTDIR)$(libdir)/service/user/goetia-shutdown/down: service/user/goetia-shutdown/down
service/user/goetia-runner/run: src/lib/service/user/goetia-runner/run
$(DESTDIR)$(libdir)/service/user/goetia-runner/run: service/user/goetia-runner/run
service/user/goetia-runner/notification-fd: src/lib/service/user/goetia-runner/notification-fd
diff --git a/package/modes b/package/modes
index 4acc933..182f8f8 100644
--- a/package/modes
+++ b/package/modes
@@ -19,17 +19,10 @@ user-tmpfs 0755
service/system/goetia-runner/run 0755
service/system/s6-svscan-log/run 0755
service/system/s6-svscan-log-console/run 0755
-service/system/.s6-svscan/crash 0755
-service/system/.s6-svscan/finish 0755
-service/system/.s6-svscan/SIGINT 0755
-service/system/.s6-svscan/SIGPWR 0755
-service/system/.s6-svscan/SIGQUIT 0755
-service/system/.s6-svscan/SIGTERM 0755
-service/system/.s6-svscan/SIGUSR1 0755
-service/system/.s6-svscan/SIGUSR2 0755
-service/system/.s6-svscan/SIGWINCH 0755
+service/user/goetia-shutdown/run 0755
service/user/goetia-runner/run 0755
service/user/s6-svscan-log/run 0755
service/user/s6-svscan-log-console/run 0755
service/user/.s6-svscan/SIGTERM 0755
+service/user/.s6-svscan/finish 0755
diff --git a/package/targets.mak b/package/targets.mak
index 43cbcae..8c63c9b 100644
--- a/package/targets.mak
+++ b/package/targets.mak
@@ -59,22 +59,16 @@ SLASHCOMMAND_BINS ::= \
ALL_LIBS ::= \
service/system/s6-svscan-log/run \
service/system/s6-svscan-log/notification-fd \
- service/system/.s6-svscan/crash \
- service/system/.s6-svscan/SIGUSR1 \
- service/system/.s6-svscan/finish \
- service/system/.s6-svscan/SIGQUIT \
- service/system/.s6-svscan/SIGINT \
- service/system/.s6-svscan/SIGUSR2 \
- service/system/.s6-svscan/SIGWINCH \
- service/system/.s6-svscan/SIGTERM \
- service/system/.s6-svscan/SIGPWR \
service/system/s6-svscan-log-console/run \
service/system/s6-svscan-log-console/notification-fd \
service/system/goetia-runner/run \
service/system/goetia-runner/notification-fd \
service/user/s6-svscan-log/run \
service/user/s6-svscan-log/notification-fd \
+ service/user/.s6-svscan/finish \
service/user/.s6-svscan/SIGTERM \
+ service/user/goetia-shutdown/run \
+ service/user/goetia-shutdown/down \
service/user/goetia-runner/run \
service/user/goetia-runner/notification-fd \
source/system/other/dbus-daemon-srv/run \
@@ -253,22 +247,16 @@ ALL_LIBS ::= \
INSTALL_LIBS ::= \
$(DESTDIR)$(libdir)/service/system/s6-svscan-log/run \
$(DESTDIR)$(libdir)/service/system/s6-svscan-log/notification-fd \
- $(DESTDIR)$(libdir)/service/system/.s6-svscan/crash \
- $(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGUSR1 \
- $(DESTDIR)$(libdir)/service/system/.s6-svscan/finish \
- $(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGQUIT \
- $(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGINT \
- $(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGUSR2 \
- $(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGWINCH \
- $(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGTERM \
- $(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGPWR \
$(DESTDIR)$(libdir)/service/system/s6-svscan-log-console/run \
$(DESTDIR)$(libdir)/service/system/s6-svscan-log-console/notification-fd \
$(DESTDIR)$(libdir)/service/system/goetia-runner/run \
$(DESTDIR)$(libdir)/service/system/goetia-runner/notification-fd \
$(DESTDIR)$(libdir)/service/user/s6-svscan-log/run \
$(DESTDIR)$(libdir)/service/user/s6-svscan-log/notification-fd \
+ $(DESTDIR)$(libdir)/service/user/.s6-svscan/finish \
$(DESTDIR)$(libdir)/service/user/.s6-svscan/SIGTERM \
+ $(DESTDIR)$(libdir)/service/user/goetia-shutdown/run \
+ $(DESTDIR)$(libdir)/service/user/goetia-shutdown/down \
$(DESTDIR)$(libdir)/service/user/goetia-runner/run \
$(DESTDIR)$(libdir)/service/user/goetia-runner/notification-fd \
$(DESTDIR)$(libdir)/source/system/other/dbus-daemon-srv/run \
diff --git a/src/bin/prepare-svscan b/src/bin/prepare-svscan
index 9fe7f8d..05fd356 100755
--- a/src/bin/prepare-svscan
+++ b/src/bin/prepare-svscan
@@ -21,7 +21,7 @@ redirfd -wnb 1 ${RUNDIR}/service/s6-svscan-log/fifo
background {
redirfd -w 2 ${RUNDIR}/service/s6-svscan-log/fifo
if -x0 -n { eltest -d ${RUNDIR}/s6-rc }
- foreground { echo "\ninit!\n" }
+ foreground { echo "\ninit\n" }
if {
s6-rc-init
-c ${WORKINGDIR}/compiled
diff --git a/src/bin/system-shutdown-daemon b/src/bin/system-shutdown-daemon
index 6419bfb..9e6850e 100755
--- a/src/bin/system-shutdown-daemon
+++ b/src/bin/system-shutdown-daemon
@@ -5,7 +5,7 @@
tryexec { ./stage3b }
if -n {
- foreground { echo "\nsystem-shutdown!\n" }
+ foreground { echo "\nshutdown\n" }
foreground { s6-rc -l @tmpfsdir@/@sysrundir@/s6-rc -v2 -b -Da -t@timeout@ change }
foreground {
pipeline { ls -1 @tmpfsdir@/@sysrundir@/service/ }
diff --git a/src/bin/user-init b/src/bin/user-init
index aa24f9d..120398f 100755
--- a/src/bin/user-init
+++ b/src/bin/user-init
@@ -11,6 +11,10 @@ multisubstitute {
PATH
}
+ifelse { eltest -d @tmpfsdir@/@usrrundir@/${USER}/${USERTREE} } {
+ exit 100
+}
+
backtick HOME { homeof ${USER} }
importas -Si HOME
diff --git a/src/bin/user-shutdown b/src/bin/user-shutdown
index 9376f5b..48311bd 100755
--- a/src/bin/user-shutdown
+++ b/src/bin/user-shutdown
@@ -6,18 +6,5 @@ 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} }
+s6-svc -U @tmpfsdir@/@usrrundir@/${USER}/${USERTREE}/service/goetia-shutdown
diff --git a/src/lib/service/system/.s6-svscan/SIGINT b/src/lib/service/system/.s6-svscan/SIGINT
deleted file mode 100755
index 7b00dd5..0000000
--- a/src/lib/service/system/.s6-svscan/SIGINT
+++ /dev/null
@@ -1,5 +0,0 @@
-#!@shebangdir@/execlineb -P
-
-# ISC license.
-
-system-shutdown -r
diff --git a/src/lib/service/system/.s6-svscan/SIGPWR b/src/lib/service/system/.s6-svscan/SIGPWR
deleted file mode 100755
index b7e4956..0000000
--- a/src/lib/service/system/.s6-svscan/SIGPWR
+++ /dev/null
@@ -1,5 +0,0 @@
-#!@shebangdir@/execlineb -P
-
-# ISC license.
-
-system-shutdown -p
diff --git a/src/lib/service/system/.s6-svscan/SIGQUIT b/src/lib/service/system/.s6-svscan/SIGQUIT
deleted file mode 100755
index 4d6fd2f..0000000
--- a/src/lib/service/system/.s6-svscan/SIGQUIT
+++ /dev/null
@@ -1,2 +0,0 @@
-#!@shebangdir@/execlineb -P
-
diff --git a/src/lib/service/system/.s6-svscan/SIGTERM b/src/lib/service/system/.s6-svscan/SIGTERM
deleted file mode 100755
index 4d6fd2f..0000000
--- a/src/lib/service/system/.s6-svscan/SIGTERM
+++ /dev/null
@@ -1,2 +0,0 @@
-#!@shebangdir@/execlineb -P
-
diff --git a/src/lib/service/system/.s6-svscan/SIGUSR1 b/src/lib/service/system/.s6-svscan/SIGUSR1
deleted file mode 100755
index b7e4956..0000000
--- a/src/lib/service/system/.s6-svscan/SIGUSR1
+++ /dev/null
@@ -1,5 +0,0 @@
-#!@shebangdir@/execlineb -P
-
-# ISC license.
-
-system-shutdown -p
diff --git a/src/lib/service/system/.s6-svscan/SIGUSR2 b/src/lib/service/system/.s6-svscan/SIGUSR2
deleted file mode 100755
index cf21071..0000000
--- a/src/lib/service/system/.s6-svscan/SIGUSR2
+++ /dev/null
@@ -1,5 +0,0 @@
-#!@shebangdir@/execlineb -P
-
-# ISC license.
-
-system-shutdown -h
diff --git a/src/lib/service/system/.s6-svscan/SIGWINCH b/src/lib/service/system/.s6-svscan/SIGWINCH
deleted file mode 100755
index 4d6fd2f..0000000
--- a/src/lib/service/system/.s6-svscan/SIGWINCH
+++ /dev/null
@@ -1,2 +0,0 @@
-#!@shebangdir@/execlineb -P
-
diff --git a/src/lib/service/system/.s6-svscan/crash b/src/lib/service/system/.s6-svscan/crash
deleted file mode 100755
index 9fa8bd4..0000000
--- a/src/lib/service/system/.s6-svscan/crash
+++ /dev/null
@@ -1,10 +0,0 @@
-#!@shebangdir@/execlineb -P
-
-# ISC license.
-
-redirfd -w 2 /dev/console
-fdmove -c 1 2
-
-foreground { echo "s6-svscan crashed. Rebooting." }
-
-linux-powertool -r
diff --git a/src/lib/service/system/.s6-svscan/finish b/src/lib/service/system/.s6-svscan/finish
deleted file mode 100755
index fa3654c..0000000
--- a/src/lib/service/system/.s6-svscan/finish
+++ /dev/null
@@ -1,9 +0,0 @@
-#!@shebangdir@/execlineb -P
-
-
-redirfd -w 2 /dev/console
-fdmove -c 1 2
-
-foreground { echo "s6-svscan exited. Rebooting." }
-
-linux-powertool -r
diff --git a/src/lib/service/user/.s6-svscan/finish b/src/lib/service/user/.s6-svscan/finish
new file mode 100644
index 0000000..caf0dbc
--- /dev/null
+++ b/src/lib/service/user/.s6-svscan/finish
@@ -0,0 +1,8 @@
+#!@shebangdir@/execlineb -P
+
+multisubstitute {
+ importas -Si USER
+ importas -Si USERTREE
+}
+
+rm -Rf @tmpfsdir@/@usrrundir@/${USER}/${USERTREE}
diff --git a/src/lib/service/user/goetia-shutdown/down b/src/lib/service/user/goetia-shutdown/down
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/service/user/goetia-shutdown/down
diff --git a/src/lib/service/user/goetia-shutdown/run b/src/lib/service/user/goetia-shutdown/run
new file mode 100755
index 0000000..e13d016
--- /dev/null
+++ b/src/lib/service/user/goetia-shutdown/run
@@ -0,0 +1,20 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+fdmove -c 2 1
+
+multisubstitute {
+ importas -Si USER
+ importas -Si USERTREE
+}
+
+if -x0 { eltest -d @tmpfsdir@/@usrrundir@/${USER}/${USERTREE} }
+
+foreground {
+ foreground { echo "\nshutdown\n" }
+ s6-rc -l @tmpfsdir@/@usrrundir@/${USER}/${USERTREE}/s6-rc -v2 -b -da -t@timeout@ change
+}
+
+foreground { s6-svc -h @tmpfsdir@/@usrrundir@/${USER}/${USERTREE}/service/s6-svscan-log }
+foreground { s6-svscanctl -t @tmpfsdir@/@usrrundir@/${USER}/${USERTREE}/service }