]>
Commit | Line | Data |
---|---|---|
cd1a2927 MT |
1 | #!/bin/sh |
2 | # | |
15852942 | 3 | # rc.halt for ipfire 2006 |
cd1a2927 | 4 | # |
15852942 MT |
5 | |
6 | progressbar() | |
7 | { | |
8 | if [ $# != 1 ] | |
9 | then | |
10 | echo "Usage: progressbar {progress}" | |
11 | exit 1 | |
12 | fi | |
13 | echo "show $(( 65534 * $1 / 9 ))" > /proc/splash | |
14 | } | |
15 | # Set bootsplash | |
16 | progressbar 0 | |
17 | echo "silent" > /proc/splash | |
18 | ||
cd1a2927 | 19 | echo "Stopping the RED interface..." |
15852942 | 20 | progressbar 1 |
cd1a2927 MT |
21 | /etc/rc.d/rc.red stop 2>/dev/null |
22 | /etc/rc.d/rc.red clear 2>/dev/null | |
15852942 | 23 | |
cd1a2927 | 24 | echo "Shutting down..." |
15852942 | 25 | progressbar 2 |
cd1a2927 | 26 | sleep 3 |
15852942 | 27 | |
cd1a2927 | 28 | echo "Saving the clock" |
15852942 | 29 | progressbar 3 |
cd1a2927 | 30 | /sbin/hwclock --systohc |
15852942 | 31 | |
cd1a2927 | 32 | echo "Sending all processes the TERM signal..." |
15852942 | 33 | progressbar 4 |
cd1a2927 MT |
34 | /sbin/killall5 -15 |
35 | sleep 3 | |
15852942 | 36 | |
cd1a2927 | 37 | echo "Sending all processes the KILL signal..." |
15852942 | 38 | progressbar 5 |
cd1a2927 MT |
39 | /sbin/killall5 -9 |
40 | sleep 3 | |
41 | ||
cd1a2927 | 42 | echo "Turning off swap" |
15852942 | 43 | progressbar 6 |
cd1a2927 | 44 | swapoff -a |
15852942 | 45 | |
cd1a2927 | 46 | echo "Unmounting others" |
15852942 | 47 | progressbar 7 |
cd1a2927 | 48 | umount -n -a |
15852942 | 49 | |
cd1a2927 | 50 | echo "Unmounting root" |
15852942 | 51 | progressbar 8 |
cd1a2927 MT |
52 | mount -n -o remount,ro / |
53 | ||
54 | # Send nice shutdown beep now | |
15852942 | 55 | progressbar 9 |
cd1a2927 MT |
56 | /usr/bin/beep -l 75 -f 3000 |
57 | /usr/bin/beep -l 75 -f 2000 | |
58 | /usr/bin/beep -l 75 -f 1000 | |
59 | /usr/bin/beep -l 75 -f 500 | |
60 | ||
61 | if [ "$1" = "halt" ]; then | |
62 | halt -i -d -p | |
63 | else | |
64 | reboot -i -d | |
65 | fi |