aboutsummaryrefslogtreecommitdiffstats
path: root/lsb-bootscripts/etc/init.d/network
blob: b725dd05a802202a10b5079eb4f7bdfb6f6c8f43 (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
79
80
81
82
83
84
#!/bin/sh
# Begin /etc/init.d/network

### BEGIN INIT INFO
# Provides:            $network
# Required-Start:      $local_fs swap localnet
# Should-Start:        $syslog
# Required-Stop:       $local_fs swap localnet 
# Should-Stop:         $syslog
# Default-Start:       3 4 5
# Default-Stop:        0 1 2 6
# Short-Description:   Starts and configures network interfaces.
# Description:         Starts and configures network interfaces.
# X-LFS-Provided-By:   LFS
### END INIT INFO

. /lib/lsb/init-functions

case "${1}" in
    start)
        # Start all network interfaces
        for dir in ${NETWORK_DEVICES}/ifconfig.*
        do
            interface=${dir##*/ifconfig.}
            # skip if $dir is * (because nothing was found)
            if [ "${interface}" = "*" ]; then
                continue
            fi
            # Process individual configuration files
            for file in "${dir}"/* ; do
                ONBOOT=`grep "ONBOOT" "${file}" | sed 's@^ONBOOT=@@'`
                case "${ONBOOT}" in
                    Y* | y* | 0)
                        /sbin/ifup -c "${file}" "${interface}"
                    ;;
                esac
            done
        done
    ;;

    stop)
        # Reverse list
        DIRS=""
        for dir in /run/network/ifconfig.*
        do
            DIRS="${dir} ${DIRS}"
        done

        # Stop all network interfaces
        for dir in ${DIRS}; do
            interface=${dir##*/ifconfig.}
            # skip if $dir is * (because nothing was found)
            if [ "${interface}" = "*" ]; then
                continue
            fi
            # Process individual configuration files
            for file in "${dir}"/* ; do
                # No checking necessary if it is in /run/network
                /sbin/ifdown -c "${file}" "${interface}"
            done
            link_status=`/sbin/ip link show "${interface}" | \
                grep -o "state DOWN"`
            if [ "${link_status}" != "state DOWN" ]; then
                message="Shutting down the ${interface} interface..."
                /sbin/ip addr flush "${interface}" &&
                /sbin/ip link set "${interface}" down
                evaluate_retval standard
            fi
        done
    ;;

    restart)
        ${0} stop
        sleep 1
        ${0} start
    ;;

    *)
        echo "Usage: ${0} {start|stop|restart}"
        exit 1
    ;;
esac

# End /etc/init.d/network