source: bootscripts/lfs/init.d/network@ 25596ffb

11.0 11.0-rc1 11.0-rc2 11.0-rc3 11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 arm bdubbs/gcc13 ml-11.0 multilib renodr/libudev-from-systemd s6-init trunk xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since 25596ffb was 25596ffb, checked in by Bruce Dubbs <bdubbs@…>, 3 years ago

Make stopping the network interfaces more robust.
SysV only.

When stopping or rebooting the system, the network boot script is run and looks
at all the /etc/sysconfig/ifconfig.* files. Some of the devices these files
refer to may not be active or even refer to interfaces that are not defined on
the current system. This change ignores non-existant interfaces and any
interfaces that are not UP. This change also avoids bogus warning or error
error messages when the system is shutting down.

  • Property mode set to 100644
File size: 2.3 KB
Line 
1#!/bin/sh
2########################################################################
3# Begin network
4#
5# Description : Network Control Script
6#
7# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
8# Nathan Coulson - nathan@linuxfromscratch.org
9# Kevin P. Fleming - kpfleming@linuxfromscratch.org
10# DJ Lucas - dj@linuxfromscratch.org
11# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
12#
13# Version : LFS 7.0
14#
15########################################################################
16
17### BEGIN INIT INFO
18# Provides: $network
19# Required-Start: $local_fs localnet swap
20# Should-Start: $syslog firewalld iptables nftables
21# Required-Stop: $local_fs localnet swap
22# Should-Stop: $syslog firewalld iptables nftables
23# Default-Start: 3 4 5
24# Default-Stop: 0 1 2 6
25# Short-Description: Starts and configures network interfaces.
26# Description: Starts and configures network interfaces.
27# X-LFS-Provided-By: LFS
28### END INIT INFO
29
30case "${1}" in
31 start)
32 # Start all network interfaces
33 for file in /etc/sysconfig/ifconfig.*
34 do
35 interface=${file##*/ifconfig.}
36
37 # Skip if $file is * (because nothing was found)
38 if [ "${interface}" = "*" ]; then continue; fi
39
40 /sbin/ifup ${interface}
41 done
42 ;;
43
44 stop)
45 # Unmount any network mounted file systems
46 umount --all --force --types nfs,cifs,nfs4
47
48 # Reverse list
49 net_files=""
50 for file in /etc/sysconfig/ifconfig.*
51 do
52 net_files="${file} ${net_files}"
53 done
54
55 # Stop all network interfaces
56 for file in ${net_files}
57 do
58 interface=${file##*/ifconfig.}
59
60 # Skip if $file is * (because nothing was found)
61 if [ "${interface}" = "*" ]; then continue; fi
62
63 # See if interface exists
64 if [ ! -e /sys/class/net/$interface ]; then continue; fi
65
66 # Is interface UP?
67 ip link show $interface 2>/dev/null | grep -q "state UP"
68 if [ $? -ne 0 ]; then continue; fi
69
70 /sbin/ifdown ${interface}
71 done
72 ;;
73
74 restart)
75 ${0} stop
76 sleep 1
77 ${0} start
78 ;;
79
80 *)
81 echo "Usage: ${0} {start|stop|restart}"
82 exit 1
83 ;;
84esac
85
86exit 0
87
88# End network
Note: See TracBrowser for help on using the repository browser.