aboutsummaryrefslogtreecommitdiff
path: root/rc.single
blob: 24837ffd5593a97332c62cb7f96108adaec01dd8 (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
#!/bin/sh
#
# /etc/rc.single
#

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

if [ "$PREVLEVEL" = "3" -o "$PREVLEVEL" = "5" ]; then
  # Shutdown daemons
  let i=${#DAEMONS[@]}
  while [[ i -gt 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

if [ "$PREVLEVEL" != "N" ]; then
  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 "Starting DevFS Daemon"
  /sbin/devfsd /dev
  stat_done
    
  stat_busy "Starting Log Daemons"
  /usr/sbin/syslogd -m 0
  /usr/sbin/klogd -c 4
  stat_done
fi

if [ "$RUNLEVEL" = "1" ]; then
  echo "Entering single-user mode..."
  exec /sbin/init -t1 S
fi

# End of file