aboutsummaryrefslogtreecommitdiff
path: root/initscripts/rc.shutdown
diff options
context:
space:
mode:
authorWoodpecker CI <emmett1.2miligrams@protonmail.com>2025-09-10 00:17:55 +0000
committerWoodpecker CI <emmett1.2miligrams@protonmail.com>2025-09-10 00:17:55 +0000
commit587e408ba18740f9f01f26c4a4f42eeac1659dda (patch)
treeb88a485126e6e7f190e60bf54294a8b8cfe3a02f /initscripts/rc.shutdown
parentf8744090f8472f627ac12b560bf61f673e9ec4c5 (diff)
downloadalicelinux-587e408ba18740f9f01f26c4a4f42eeac1659dda.tar.gz
alicelinux-587e408ba18740f9f01f26c4a4f42eeac1659dda.zip
Woodpecker CI 5b06140deda36925abe23115dc9affab61527279 [SKIP CI]
Diffstat (limited to 'initscripts/rc.shutdown')
-rwxr-xr-x[-rw-r--r--]initscripts/rc.shutdown61
1 files changed, 46 insertions, 15 deletions
diff --git a/initscripts/rc.shutdown b/initscripts/rc.shutdown
index 68b47022..255c4b5a 100644..100755
--- a/initscripts/rc.shutdown
+++ b/initscripts/rc.shutdown
@@ -1,27 +1,58 @@
#!/bin/sh
-echo "shutting down"
+echo "> Shutting down system..."
if [ -x /etc/rc.shutdown.local ]; then
- /etc/rc.shutdown.local
+ echo "> Running local shutdown scripts..."
+ /etc/rc.shutdown.local
fi
-if [ "$(command -v udevadm)" ]; then
- udevadm control --exit
+if command -v udevadm >/dev/null 2>&1; then
+ echo "> Stopping udev..."
+ udevadm control --exit
fi
-sv down /var/service/*
-dd if=/dev/urandom of=/var/lib/random-seed count=1 bs=512 2>/dev/null
-hwclock -w -u
-kill -s TERM -1
+echo "> Stopping all services..."
+sv force-stop /var/service/* 2>/dev/null
+
+sleep 1
+
+if [ -w /var/lib/random-seed ]; then
+ echo "> Saving random seed..."
+ dd if=/dev/urandom of=/var/lib/random-seed count=1 bs=512 2>/dev/null
+fi
+
+if [ -e /dev/rtc ] || [ -e /dev/rtc0 ]; then
+ echo "> Syncing hardware clock..."
+ hwclock -w -u 2>/dev/null
+fi
+
+echo "> Terminating processes..."
+kill -s TERM -1 2>/dev/null
sleep 2
-kill -s KILL -1
-swapoff -a
-ip link set lo down
-umount -a -r -t noproc
-mount -o remount,ro /
+
+kill -s KILL -1 2>/dev/null
+sleep 1
+
+echo "> Disabling swap..."
+swapoff -a 2>/dev/null
+
+echo "> Bringing down network..."
+ip link set lo down 2>/dev/null
+
+for iface in $(ip link show | grep '^[0-9]' | awk -F: '{print $2}' | tr -d ' ' | grep -v '^lo$'); do
+ ip link set "$iface" down 2>/dev/null
+done
+
+echo "> Unmounting filesystems..."
+umount -a -r -t noproc 2>/dev/null
+
+echo "> Remounting root as read-only..."
+mount -o remount,ro / 2>/dev/null
+
+echo "> Syncing filesystems..."
sync
+
sleep 1
-wait
-echo bye
+echo "> Shutdown complete. Bye!"