mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-06-19 03:39:20 +01:00
Move network services to /lib/services. Move init-functions to /lib/lsb. Make /lib/lsb a symlink to /lib/services. Create convenience symlink /etc/init.d->/etc/rc.d/init.d Add help and man pages to ifup/ifdown. Append /run/var/bootlog to /var/log/boot.log at the end of the boot sequence. Add capability to step through the boot scripts at boot time. Optionally allow environment variables in sysconfig directory's console, network, and clock files to be placed in rc.site. Add an optional FASTBOOT parameter to set /fastboot when rebooting. Remove a minor warning message from udev that is triggered by the udev_retry boot script. Add SKIPTMPCLEAN as an optional parameter to skip cleaning /tmp at boot time. Add a page to Chapter 7 documenting rc.site. git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@9597 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
99 lines
2.6 KiB
Bash
Executable File
99 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
########################################################################
|
|
# Begin /sbin/ifdown
|
|
#
|
|
# Description : Interface Down
|
|
#
|
|
# Authors : Nathan Coulson - nathan@linuxfromscratch.org
|
|
# Kevin P. Fleming - kpfleming@linuxfromscratch.org
|
|
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
|
#
|
|
# Version : LFS 7.0
|
|
#
|
|
# Notes : the IFCONFIG variable is passed to the scripts found
|
|
# in the /lib/services directory, to indicate what file the
|
|
# service should source to get interface specifications.
|
|
#
|
|
########################################################################
|
|
|
|
RELEASE="7.0"
|
|
|
|
USAGE="Usage: $0 [ -hV ] [--help] [--version] interface"
|
|
VERSTR="LFS ifdown, version ${RELEASE}"
|
|
|
|
while [ $# -gt 0 ]; do
|
|
case "$1" in
|
|
--help | -h) help="y"; break ;;
|
|
|
|
--version | -V) echo "${VERSTR}"; exit 0 ;;
|
|
|
|
-*) echo "ifup: ${1}: invalid option" >&2
|
|
echo "${USAGE}" >& 2
|
|
exit 2 ;;
|
|
|
|
*) break ;;
|
|
esac
|
|
done
|
|
|
|
if [ -n "$help" ]; then
|
|
echo "${VERSTR}"
|
|
echo "${USAGE}"
|
|
echo
|
|
cat << HERE_EOF
|
|
ifdown is used to bring down a network interface. The interface
|
|
parameter, e.g. eth0 or eth0:2, must match the trailing part of the
|
|
interface specifications file, e.g. /etc/sysconfig/ifconfig.eth0:2.
|
|
|
|
HERE_EOF
|
|
exit 0
|
|
fi
|
|
|
|
file=/etc/sysconfig/ifconfig.${1}
|
|
|
|
# Skip backup files
|
|
[ "${file}" = "${file%""~""}" ] || exit 0
|
|
|
|
. /lib/lsb/init-functions
|
|
|
|
if [ ! -r "${file}" ]; then
|
|
log_warning_msg "${file} is missing or cannot be accessed."
|
|
exit 1
|
|
fi
|
|
|
|
. ${file}
|
|
|
|
if [ "$IFACE" = "" ]; then
|
|
log_failure_msg "${file} does not define an interface [IFACE]."
|
|
exit 1
|
|
fi
|
|
|
|
# This will run the service script, if SERVICE is set
|
|
if [ -n "${SERVICE}" -a -x "/lib/services/${SERVICE}" ]; then
|
|
if ip link show ${IFACE} > /dev/null 2>&1; then
|
|
IFCONFIG=${file} /lib/services/${SERVICE} ${IFACE} down
|
|
else
|
|
log_warning_msg "Interface ${1} doesn't exist."
|
|
echo_warning
|
|
fi
|
|
else
|
|
MSG="Unable to process ${file}. Either "
|
|
MSG="${MSG}the SERVICE variable was not set"
|
|
MSG="${MSG}or the specified service cannot be executed."
|
|
log_failure_msg "$MSG"
|
|
exit 1
|
|
fi
|
|
|
|
link_status=`ip link show ${IFACE} 2>/dev/null`
|
|
|
|
if [ -n "${link_status}" ]; then
|
|
if [ "$(echo "${link_status}" | grep UP)" != "" ]; then
|
|
if [ "$(ip addr show ${IFACE} | grep 'inet ')" != "" ]; then
|
|
log_info_msg "Bringing down the ${IFACE} interface..."
|
|
ip link set ${IFACE} down
|
|
evaluate_retval
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# End /sbin/ifdown
|