aboutsummaryrefslogtreecommitdiff
path: root/rc.shutdown
blob: 01f12d2e66043715a52e348e97a2daf59fa820e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/bin/sh
#
# /etc/rc.shutdown
#

. /etc/rc.conf
. /etc/rc.d/functions

# avoid staircase effect
/bin/stty onlcr

echo -n "[                               Shutting Down    "
echo    "                              ]"

if [ "$PREVLEVEL" = "2" ]; then
  # Shutdown daemons
  if [ -d /var/run/daemons ]; then
    for daemon in `ls /var/run/daemons`; do
      /etc/rc.d/$daemon stop
    done
  fi

  # Shutdown network
  stat_busy "Shutting Down Network"
  stat_done

  # Shutdown pcmcia
  if [ "$PCMCIA" = "yes" -a -f /etc/rc.d/pcmcia ]; then
    /etc/rc.d/pcmcia stop
  fi
fi

# Terminate all processes
stat_busy "Sending SIGTERM To Processes"
/sbin/killall5 -15 &> /dev/null
/usr/bin/sleep 5
stat_done

stat_busy "Sending SIGKILL To Processes"
/sbin/killall5 -9 &> /dev/null
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"
/sbin/hwclock --systohc
stat_done

# 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

stat_busy "Remounting Root Filesystem Read-only"
/bin/mount -n -o remount,ro /
stat_done
echo ""

# Power off or reboot
if [ "$RUNLEVEL" = "0" ]; then
  echo -n "[                                 POWER OFF      "
  echo    "                              ]"
  /sbin/poweroff -d -f -i
else
  echo -n "[                                 REBOOTING      "
  echo    "                              ]"
  /sbin/reboot -d -f -i
fi

# End of file