diff options
-rwxr-xr-x | rc.boot | 10 | ||||
-rw-r--r-- | rc.lib | 9 | ||||
-rwxr-xr-x | rc.shutdown | 14 |
3 files changed, 18 insertions, 15 deletions
@@ -71,7 +71,8 @@ out "Mounting all local filesystems..."; { mount -at nosysfs,nonfs,nonfs4,nosmbfs,nocifs -O no_netdev || shell } -} + +run_hook early-boot out "Enabling swap..."; { swapon -a || shell @@ -126,12 +127,7 @@ command -v udevd >/dev/null && udevadm control --exit -out "Running boot hooks..." -set +f -for file in /etc/init/*.boot ; do - [ -f "$file" ] && \ - out "Running $file" && . "$file" -done +run_hook boot out "Running rc.local..."; { [ -r "/etc/init/rc.local" ] && \ @@ -8,3 +8,12 @@ shell() { error "Dropping to shell, type 'exit' to continue the boot process." sh -l } + +run_hook() { + out "Running '$1' hooks..." + for hook in "/etc/init/"*".$1"; do + [ -f "$hook" ] || continue + out "Running '$hook'..." + . "$hook" + done +} diff --git a/rc.shutdown b/rc.shutdown index 0b977f2..2266f21 100755 --- a/rc.shutdown +++ b/rc.shutdown @@ -5,16 +5,14 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin -out "Waiting for services to stop..."; { - sv -w196 force-stop /var/service/* >/dev/null 2>&1 - sv exit /var/service/* >/dev/null 2>&1 +run_hook pre.shutdown + +command -v sv >/dev/null && + out "Waiting for runit services to stop..."; { + sv -w196 force-stop /var/service/* >/dev/null + sv exit /var/service/* >/dev/null } -out "Running pre shutdown hooks..." -for file in /etc/init/*.pre.shutdown ; do - [ -f "$file" ] && \ - out "Running $file" && . "$file" -done out "Saving random seed..."; { dd count=1 bs=512 if=/dev/random of=/var/random.seed |