diff options
author | Bas Ploeger <5904333+basploeger@users.noreply.github.com> | 2022-04-09 23:52:37 +0200 |
---|---|---|
committer | Toyam Cox <aviator45003@gmail.com> | 2023-01-09 13:24:59 -0500 |
commit | 69876b5981557910d05b119c91a492f93016ddf5 (patch) | |
tree | 0a2af0773f2296828be0ffba85d8f46bd54447ed | |
parent | fa197f0d9e18070b6b28cfdd38f22fbc8cf2f69d (diff) | |
download | runit-void-69876b5981557910d05b119c91a492f93016ddf5.tar.gz runit-void-69876b5981557910d05b119c91a492f93016ddf5.tar.xz runit-void-69876b5981557910d05b119c91a492f93016ddf5.zip |
Split run-level 3 script into separate files.
-rwxr-xr-x | 3 | 51 | ||||
-rw-r--r-- | shutdown.d/10-sv-stop.sh | 3 | ||||
-rw-r--r-- | shutdown.d/20-rc-shutdown.sh | 1 | ||||
-rw-r--r-- | shutdown.d/30-seedrng.sh | 4 | ||||
-rw-r--r-- | shutdown.d/40-hwclock.sh | 3 | ||||
-rw-r--r-- | shutdown.d/50-wtmp.sh | 1 | ||||
-rw-r--r-- | shutdown.d/60-udev.sh | 4 | ||||
-rw-r--r-- | shutdown.d/70-pkill.sh | 5 | ||||
-rw-r--r-- | shutdown.d/80-filesystems.sh | 14 | ||||
-rw-r--r-- | shutdown.d/90-kexec.sh | 7 |
10 files changed, 45 insertions, 48 deletions
diff --git a/3 b/3 index 469d437..0bd452a 100755 --- a/3 +++ b/3 @@ -6,52 +6,7 @@ PATH=/usr/bin:/usr/sbin . /etc/runit/functions detect_virt [ -r /etc/rc.conf ] && . /etc/rc.conf - echo -msg "Waiting for services to stop..." -sv force-stop /var/service/* -sv exit /var/service/* - -[ -x /etc/rc.shutdown ] && /etc/rc.shutdown - -if [ -z "$VIRTUALIZATION" ]; then - msg "Saving random number generator seed..." - seedrng -fi - -if [ -z "$VIRTUALIZATION" -a -n "$HARDWARECLOCK" ]; then - hwclock --systohc ${HARDWARECLOCK:+--$(echo $HARDWARECLOCK |tr A-Z a-z)} -fi - -halt -w # for wtmp - -if [ -z "$VIRTUALIZATION" ]; then - msg "Stopping udev..." - udevadm control --exit -fi - -msg "Sending TERM signal to processes..." -pkill --inverse -s0,1 -TERM -sleep 1 -msg "Sending KILL signal to processes..." -pkill --inverse -s0,1 -KILL - -if [ -z "$VIRTUALIZATION" ]; then - msg "Unmounting filesystems, disabling swap..." - swapoff -a - umount -r -a -t nosysfs,noproc,nodevtmpfs,notmpfs - msg "Remounting rootfs read-only..." - mount -o remount,ro / -fi - -sync - -if [ -z "$VIRTUALIZATION" ]; then - deactivate_vgs - deactivate_crypt - if [ -e /run/runit/reboot ] && command -v kexec >/dev/null; then - msg "Triggering kexec..." - kexec -e 2>/dev/null - # not reached when kexec was successful. - fi -fi +for f in /etc/runit/shutdown.d/*.sh; do + [ -r $f ] && . $f +done diff --git a/shutdown.d/10-sv-stop.sh b/shutdown.d/10-sv-stop.sh new file mode 100644 index 0000000..6d2efd0 --- /dev/null +++ b/shutdown.d/10-sv-stop.sh @@ -0,0 +1,3 @@ +msg "Waiting for services to stop..." +sv force-stop /var/service/* +sv exit /var/service/* diff --git a/shutdown.d/20-rc-shutdown.sh b/shutdown.d/20-rc-shutdown.sh new file mode 100644 index 0000000..1df105b --- /dev/null +++ b/shutdown.d/20-rc-shutdown.sh @@ -0,0 +1 @@ +[ -x /etc/rc.shutdown ] && /etc/rc.shutdown diff --git a/shutdown.d/30-seedrng.sh b/shutdown.d/30-seedrng.sh new file mode 100644 index 0000000..3bcb78f --- /dev/null +++ b/shutdown.d/30-seedrng.sh @@ -0,0 +1,4 @@ +if [ -z "$VIRTUALIZATION" ]; then + msg "Saving random number generator seed..." + seedrng +fi diff --git a/shutdown.d/40-hwclock.sh b/shutdown.d/40-hwclock.sh new file mode 100644 index 0000000..490ad73 --- /dev/null +++ b/shutdown.d/40-hwclock.sh @@ -0,0 +1,3 @@ +if [ -z "$VIRTUALIZATION" -a -n "$HARDWARECLOCK" ]; then + hwclock --systohc ${HARDWARECLOCK:+--$(echo $HARDWARECLOCK |tr A-Z a-z)} +fi diff --git a/shutdown.d/50-wtmp.sh b/shutdown.d/50-wtmp.sh new file mode 100644 index 0000000..d730013 --- /dev/null +++ b/shutdown.d/50-wtmp.sh @@ -0,0 +1 @@ +halt -w diff --git a/shutdown.d/60-udev.sh b/shutdown.d/60-udev.sh new file mode 100644 index 0000000..dd42ff7 --- /dev/null +++ b/shutdown.d/60-udev.sh @@ -0,0 +1,4 @@ +if [ -z "$VIRTUALIZATION" ]; then + msg "Stopping udev..." + udevadm control --exit +fi diff --git a/shutdown.d/70-pkill.sh b/shutdown.d/70-pkill.sh new file mode 100644 index 0000000..e396cb0 --- /dev/null +++ b/shutdown.d/70-pkill.sh @@ -0,0 +1,5 @@ +msg "Sending TERM signal to processes..." +pkill --inverse -s0,1 -TERM +sleep 1 +msg "Sending KILL signal to processes..." +pkill --inverse -s0,1 -KILL diff --git a/shutdown.d/80-filesystems.sh b/shutdown.d/80-filesystems.sh new file mode 100644 index 0000000..95dcce4 --- /dev/null +++ b/shutdown.d/80-filesystems.sh @@ -0,0 +1,14 @@ +if [ -z "$VIRTUALIZATION" ]; then + msg "Unmounting filesystems, disabling swap..." + swapoff -a + umount -r -a -t nosysfs,noproc,nodevtmpfs,notmpfs + msg "Remounting rootfs read-only..." + mount -o remount,ro / +fi + +sync + +if [ -z "$VIRTUALIZATION" ]; then + deactivate_vgs + deactivate_crypt +fi diff --git a/shutdown.d/90-kexec.sh b/shutdown.d/90-kexec.sh new file mode 100644 index 0000000..8b3eb93 --- /dev/null +++ b/shutdown.d/90-kexec.sh @@ -0,0 +1,7 @@ +if [ -z "$VIRTUALIZATION" ]; then + if [ -e /run/runit/reboot ] && command -v kexec >/dev/null; then + msg "Triggering kexec..." + kexec -e 2>/dev/null + # not reached when kexec was successful. + fi +fi |