rc/rc.shutdown
Luka Vandervelden 579e431144 Initial commit.
This is basically a fork of CRUX’s rc. All files added in this commit
and not rewritten since are to be considered under GPL. Please look at
CRUX’s core ports repository’s license file for the exact terms of the
license.
2019-07-21 19:42:16 +02:00

63 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
#
# /etc/rc.shutdown: system shutdown script
#
# Load configuration
. /etc/rc.conf
# Set linefeed mode to avoid staircase effect
/bin/stty onlcr
echo "The system is coming down. Please wait."
if [ "$PREVLEVEL" = "2" ]; then
# Shutdown services
if [ "${SERVICES[*]}" ]; then
for service in "${SERVICES[@]}"; do
R_SERVICES=($service ${R_SERVICES[@]})
done
for service in "${R_SERVICES[@]}"; do
/etc/rc.d/$service stop &> /tmp/rc.$$
/usr/bin/logger -t $service < /tmp/rc.$$
/bin/rm -f /tmp/rc.$$
done
fi
fi
# Terminate all processes
/sbin/killall5 -15
/bin/sleep 5
/sbin/killall5 -9
# Save random seed
/bin/dd if=/dev/urandom of=/var/lib/urandom/seed count=1 2> /dev/null
# Save system clock
/sbin/hwclock --systohc
# Write to wtmp file before unmounting
/sbin/halt -w
# Turn off swap
/sbin/swapoff -a
# Unmount file systems
/bin/umount -a -d -r -t nosysfs,noproc,nodevtmpfs
if [ -x /sbin/lvm ]; then
/sbin/vgchange --ignorelockingfailure -a n
fi
/bin/umount -a -r
# Remount root filesystem read-only
/bin/mount -o remount,ro /
# Power off or reboot
if [ "$RUNLEVEL" = "0" ]; then
/sbin/poweroff -d -f -i
else
/sbin/reboot -d -f -i
fi
# End of file