#!/bin/sh # # description: Activates/Deactivates all network interfaces configured to # start at boot time. # # Modified by Hugo Villeneuve # # Source functions library source /etc/rc.d/init.d/functions log_script_name "$0 $*" # Load global network parameters source /etc/sysconfig/network/network-parameters # Check that the ip program is present and executable. if [ ! -x /sbin/ip ]; then msg_log "*** ERROR: /sbin/ip not found." exit ${EXIT_CODE_FAILURE} fi CWD=`pwd` cd /etc/sysconfig/network clean_network_up_indication() { if [ -f "${NETWORKING_UP_FILE}" ]; then rm "${NETWORKING_UP_FILE}" fi } network_start() { NUMBER_OF_IF_STARTED=0 NUMBER_OF_IF_TO_START=$(echo ${INTERFACES} | wc -w) for i in ${INTERFACES}; do if LANG=C egrep -q -L "^ONBOOT=\"?[Yy][Ee][Ss]\"?" ifconfig.$i ; then local STR="Ethernet Adapter <$i> init" local CMD="/etc/rc.d/init.d/ifup $i" if [ x"${BACKGROUND_START}" == xyes ]; then cmd_run_log ${CMD} else cmd_run_log_box_warn "${STR}" ${CMD} fi if [ ${?} -eq 0 ]; then NUMBER_OF_IF_STARTED=$((NUMBER_OF_IF_STARTED + 1)) fi fi done if [ "x${NUMBER_OF_IF_STARTED}" == "x${NUMBER_OF_IF_TO_START}" ]; then # Signal to other scripts that all network interfaces have been # started (especially usefull to prevent mountnetfs bootscript to # blovk forever) touch "${NETWORKING_UP_FILE}" fi } network_stop() { for i in ${INTERFACES} ; do if LC_ALL= LANG= ip link show dev $i 2> /dev/null | grep -q "UP"; then cmd_run_log_box_warn "Ethernet Adapter <$i> stop" \ /etc/rc.d/init.d/ifdown "$i" fi done ip route flush all } # See how we were called. case "$1" in start) clean_network_up_indication if [ x"${BACKGROUND_START}" == xyes ]; then network_start & else network_start fi ;; stop) clean_network_up_indication network_stop ;; restart) cd $CWD $0 stop $0 start ;; status) echo "Active devices:" /sbin/ip -oneline addr show up | grep inet \ | sed 's/\(^.*\): \([a-zA-Z0-9]*\) *inet \([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*/ \2 (\3)/' ;; *) echo $"Usage: $0 {start|stop|restart|status}" exit ${EXIT_CODE_FAILURE} esac exit $?