#!/bin/bash unset WINDOW # defined by screen, conflicts with our usage . /etc/init.d/functions cd /etc/sysconfig/network-scripts . ./network-functions [ -f ../network ] && . ../network CONFIG=$1 [ -z "$CONFIG" ] && { echo $"usage: ifdown " >&2 exit 1 } need_config "${CONFIG}" [ -f "$CONFIG" ] || { echo $"usage: ifdown " >&2 exit 1 } if [ $UID != 0 ]; then if [ -x /usr/sbin/usernetctl ]; then source_config if /usr/sbin/usernetctl ${CONFIG} report ; then exec /usr/sbin/usernetctl ${CONFIG} down fi fi echo $"Users cannot control this device." >&2 exit 1 fi source_config if ! is_true ${DEPRECATION_WARNING_ISSUED}; then net_log $"You are using 'ifdown' script provided by 'network-scripts', which are now deprecated." warning ifdown >&2 net_log $"'network-scripts' will be removed from distribution in near future." warning ifdown >&2 net_log $"It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well." warning ifdown >&2 fi if [ -n "$IN_HOTPLUG" ] && [ "${HOTPLUG}" = "no" -o "${HOTPLUG}" = "NO" ] then exit 0 fi if is_true "$_use_nm"; then if [ -n "$UUID" -a -z "$DEVICE" ]; then DEVICE=$(nmcli -t --fields uuid,device con show --active | awk -F ':' "\$1 == \"$UUID\" { print \$2 }") fi if [ -n "$DEVICE" ] && ! is_nm_device_unmanaged "$DEVICE" ; then if ! LC_ALL=C nmcli -t -f STATE,DEVICE dev status | grep -Eq "^(failed|disconnected|unmanaged|unavailable):$DEVICE$"; then nmcli dev disconnect "$DEVICE" exit $? fi exit 0 fi fi if [ -x /sbin/ifdown-pre-local ]; then /sbin/ifdown-pre-local ${DEVICE} fi OTHERSCRIPT="/etc/sysconfig/network-scripts/ifdown-${DEVICETYPE}" if [ ! -x ${OTHERSCRIPT} ]; then OTHERSCRIPT="/etc/sysconfig/network-scripts/ifdown-${TYPE}" fi if [ ! -x ${OTHERSCRIPT} ]; then OTHERSCRIPT="/etc/sysconfig/network-scripts/ifdown-eth" fi exec ${OTHERSCRIPT} ${CONFIG} $2