source: lsb-bootscripts/sbin/ifup@ c2db087

10.0 10.0-rc1 10.1 10.1-rc1 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 7.0 7.1 7.2 7.3 7.4 7.5 7.5-systemd 7.6 7.6-systemd 7.7 7.7-systemd 7.8 7.8-systemd 7.9 7.9-systemd 8.0 8.1 8.2 8.3 8.4 9.0 9.1 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 c2db087 was c2db087, checked in by DJ Lucas <dj@…>, 13 years ago

New ifup/ifdown and modified network script. Changed comments on cleanfs scritp as well.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@9543 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 5.0 KB
Line 
1#!/bin/sh
2########################################################################
3# Begin /sbin/ifdown
4#
5# Description : Interface Up
6#
7# Authors : DJ Lucas - dj@linuxfromscratch.org
8#
9# Version : 00.02
10#
11########################################################################
12
13. /lib/lsb/init-functions
14
15function get_args()
16 {
17 if test -z "${1}" ; then
18 showhelp
19 exit 1
20 fi
21
22 while test -n "${1}" ; do
23 case "${1}" in
24 -c | --configfile)
25 check_arg $1 $2
26 CONFIGFILE="${2}"
27 shift 2
28 ;;
29 eth* | iw* | wlan*)
30 INTERFACE="${1}"
31 shift 1
32 ;;
33 -h | --help)
34 showhelp
35 exit 0
36 ;;
37 *)
38 showhelp
39 echo "ERROR: '${1}' unknown argument"
40 echo ""
41 exit 2
42 ;;
43 esac
44 done
45 }
46
47function check_arg()
48 {
49 echo "${2}" | grep -v "^-" > /dev/null
50 if [ -z "${?}" -o ! -n "${2}" ]; then
51 echo "Error: ${1} requires a valid argument."
52 exit 2
53 fi
54 }
55
56function showhelp()
57 {
58 echo "`/usr/bin/basename ${0}` brings up a valid network interface."
59 echo ""
60 echo "Options:"
61 echo " -c --configfile The path to an interface configuration file"
62 echo " If no configuration file is given, all files"
63 echo " listed in ${NETWORK_DEVICES}/ifconfig.<int> will"
64 echo " be processed, regarless of the value of ONBOOT"
65 echo " -h --help Show this help message and exit."
66 echo ""
67 echo "Examples:"
68 echo " `/usr/bin/basename ${0}` eth0 -c ${NETWORK_DEVICES}/ifconfig.eth0/ipv4"
69 echo " `/usr/bin/basename ${0}` eth0"
70 echo ""
71 echo ""
72 }
73
74# Intialize empty variables so that the shell does not polute the script
75CONFIGFILE=""
76CONFIGDIR=""
77INTERFACE=""
78
79# Process command line arguments
80get_args ${@}
81
82# Handle common errors - No need to account for bootscripts, this should not
83# happen during boot or shutdown.
84if [ "${CONFIGFILE}x" != "x" -a ! -f "${CONFIGFILE}" ]; then
85 echo "ERROR: ${CONFIGFILE} is not a valid network configuration file."
86 echo ""
87 exit 2
88fi
89
90if [ "${INTERFACE}x" == "x" ]; then
91 echo "ERROR: No interface was given"
92 echo ""
93 exit 2
94else
95 if ! grep "${INTERFACE}" /proc/net/dev 2>&1 > /dev/null; then
96 echo "ERROR: ${INTERFACE} is not a valid network interface."
97 echo ""
98 exit 2
99 fi
100fi
101
102# If a configuration file is present, use it
103if [ "${CONFIGFILE}x" != "x" ]; then
104 . "${CONFIGFILE}"
105 if [ -x "/lib/network-services/${SERVICE}" ]; then
106 # do the work
107 # Check to make sure the interface is up
108 link_status=`/sbin/ip link show "${INTERFACE}" | \
109 grep -o "state UP"`
110 if [ "${link_status}" != "state UP" ]; then
111 message="Bringing up the ${INTERFACE} interface..."
112 /sbin/ip link set ${INTERFACE} up
113 evaluate_retval standard
114 fi
115 if IFCONFIG=${CONFIGFILE} \
116 /lib/network-services/${SERVICE} ${INTERFACE} up; then
117 mkdir -p "/run/network/ifconfig.${INTERFACE}"
118 cp "${CONFIGFILE}" "/run/network/ifconfig.${INTERFACE}/"
119 fi
120 else
121 echo "ERROR: Service '${SERVICE}' is not a valid service."
122 echo ""
123 exit 2
124 fi
125# No interface configuration file was given
126else
127 # Process all available interface configuration files
128 CONFIGDIR="/etc/network/ifconfig.${INTERFACE}"
129 if [ -d "${CONFIGDIR}" ]; then
130 FILES=`ls "${CONFIGDIR}"`
131 for CONFIGFILE in ${FILES}
132 do
133 (
134 . "${CONFIGDIR}/${CONFIGFILE}"
135 if [ -x "/lib/network-services/${SERVICE}" ]; then
136 # Check to make sure the interface is up
137 link_status=`/sbin/ip link show "${INTERFACE}" | \
138 grep -o "state UP"`
139 if [ "${link_status}" != "state UP" ]; then
140 message="Bringing up the ${INTERFACE} interface..."
141 /sbin/ip link set ${INTERFACE} up
142 evaluate_retval standard
143 fi
144 if IFCONFIG="${CONFIGDIR}/${CONFIGFILE}" \
145 /lib/network-services/${SERVICE} ${INTERFACE} up; then
146 mkdir -p "/run/network/ifconfig.${INTERFACE}"
147 cp "${CONFIGDIR}/${CONFIGFILE}" \
148 "/run/network/ifconfig.${INTERFACE}/"
149 fi
150 else
151 echo "ERROR: Service '${SERVICE}' is not a valid service."
152 echo ""
153 exit 2
154 fi
155
156 )
157 done
158 fi
159fi
160
Note: See TracBrowser for help on using the repository browser.