summaryrefslogtreecommitdiffstats
path: root/build_tools/clarch/larch/profiles/i586-testing-REMOTE/post_process/rc.shutdown
diff options
context:
space:
mode:
Diffstat (limited to 'build_tools/clarch/larch/profiles/i586-testing-REMOTE/post_process/rc.shutdown')
-rwxr-xr-xbuild_tools/clarch/larch/profiles/i586-testing-REMOTE/post_process/rc.shutdown104
1 files changed, 104 insertions, 0 deletions
diff --git a/build_tools/clarch/larch/profiles/i586-testing-REMOTE/post_process/rc.shutdown b/build_tools/clarch/larch/profiles/i586-testing-REMOTE/post_process/rc.shutdown
new file mode 100755
index 0000000..1a8cdbe
--- /dev/null
+++ b/build_tools/clarch/larch/profiles/i586-testing-REMOTE/post_process/rc.shutdown
@@ -0,0 +1,104 @@
+#!/bin/bash
+#
+# /etc/rc.shutdown
+#
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# avoid staircase effect
+/bin/stty onlcr
+
+echo " "
+printhl "Initiating Shutdown..."
+echo " "
+
+if [ -x /etc/rc.local.shutdown ]; then
+ /etc/rc.local.shutdown
+fi
+
+if [ "$PREVLEVEL" = "3" -o "$PREVLEVEL" = "5" ]; then
+ # Shutdown daemons
+ let i=${#DAEMONS[@]}
+ while [[ i -ge 0 ]]; do
+ if [[ `echo ${DAEMONS[$i]} | grep '^[^\!]' | wc -l` -eq 1 ]]; then
+ /etc/rc.d/${DAEMONS[$i]#@} stop
+ fi
+ let i=i-1
+ done
+ # find any leftover daemons and shut them down
+ if [ -d /var/run/daemons ]; then
+ for daemon in `ls /var/run/daemons`; do
+ /etc/rc.d/$daemon stop
+ done
+ fi
+fi
+
+# Terminate all processes
+stat_busy "Sending SIGTERM To Processes"
+/sbin/killall5 -15 &> /dev/null
+/bin/sleep 5
+stat_done
+
+stat_busy "Sending SIGKILL To Processes"
+/sbin/killall5 -9 &> /dev/null
+/bin/sleep 1
+stat_done
+
+stat_busy "Saving Random Seed"
+/bin/dd if=/dev/urandom of=/var/run/random-seed count=1 bs=512 2> /dev/null
+stat_done
+
+stat_busy "Saving System Clock"
+if [ "$HARDWARECLOCK" = "UTC" ]; then
+ /sbin/hwclock --directisa --utc --systohc
+else
+ /sbin/hwclock --directisa --localtime --systohc
+fi
+stat_done
+
+# removing psmouse module to fix some reboot issues on newer laptops
+modprobe -r psmouse >/dev/null 2>&1
+
+# Write to wtmp file before unmounting
+/sbin/halt -w
+
+stat_busy "Deactivating Swap"
+/sbin/swapoff -a
+stat_done
+
+stat_busy "Unmounting Filesystems"
+/bin/umount -a
+stat_done
+
+if [ "$USELVM" = "yes" -o "$USELVM" = "YES" ]; then
+ if [ -d /etc/lvm -a -x /sbin/lvm ]; then
+ /bin/mount -n -t sysfs none /sys 2>/dev/null
+ if [ -d /sys/block ]; then
+ stat_busy "Deactivating LVM2 groups"
+ /sbin/lvm vgchange --ignorelockingfailure -a n
+ stat_done
+ umount /sys
+ fi
+ fi
+fi
+
+stat_busy "Remounting Root Filesystem Read-only"
+/bin/mount -n -o remount,ro /
+stat_done
+exit 0
+# Power off or reboot
+if [ "$RUNLEVEL" = "0" ]; then
+ printsep
+ printhl "${C_H2}POWER OFF"
+ /sbin/poweroff -d -f -h -i
+else
+ printsep
+ printhl "${C_H2}REBOOTING"
+ # adding kexec support
+ [ -x /usr/sbin/kexec ] && /usr/sbin/kexec -e > /dev/null 2>&1
+ /sbin/reboot -d -f -i
+fi
+
+# End of file
+# vim: set ts=2 noet: