#!/bin/sh -e ### BEGIN INIT INFO # Provides: networking # Required-Start: # Required-Stop: $local_fs # Default-Start: # Default-Stop: 0 6 # Short-Description: Raise network interfaces. ### END INIT INFO PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin" [ -x /sbin/ifup ] || exit 0 . /lib/lsb/init-functions # helper function to set the usplash timeout. https://launchpad.net/bugs/21617 usplash_timeout () { TIMEOUT=$1 if [ -x /sbin/usplash_write ]; then /sbin/usplash_write "TIMEOUT $TIMEOUT" || true fi } process_options() { [ -e /etc/network/options ] || return 0 log_warning_msg "/etc/network/options still exists and it will be IGNORED! Read README.Debian of netbase." } check_network_file_systems() { [ -e /proc/mounts ] || return 0 if [ -e /etc/iscsi/iscsi.initramfs ]; then # probably root on iSCSI log_warning_msg "not deconfiguring network interfaces: root filesystem appears to be on iSCSI." exit 0 fi exec 9<&0 < /proc/mounts while read DEV MTPT FSTYPE REST; do case $DEV in /dev/nbd*|/dev/nd[a-z]*|/dev/etherd/e*) log_warning_msg "not deconfiguring network interfaces: network devices still mounted." exit 0 ;; esac case $FSTYPE in nfs|nfs4|smbfs|ncp|ncpfs|cifs|coda|ocfs2|gfs|pvfs|pvfs2|fuse.httpfs|fuse.curlftpfs) log_warning_msg "not deconfiguring network interfaces: network file systems still mounted." exit 0 ;; esac done exec 0<&9 9<&- } case "$1" in start) /lib/init/upstart-job networking start ;; stop) check_network_file_systems log_action_begin_msg "Deconfiguring network interfaces" if [ "$VERBOSE" != no ]; then if ifdown -a --exclude=lo; then log_action_end_msg $? else log_action_end_msg $? fi else if ifdown -a --exclude=lo >/dev/null 2>/dev/null; then log_action_end_msg $? else log_action_end_msg $? fi fi ;; force-reload|restart) process_options log_action_begin_msg "Reconfiguring network interfaces" ifdown -a --exclude=lo || true if ifup -a --exclude=lo; then log_action_end_msg $? else log_action_end_msg $? fi ;; *) echo "Usage: /etc/init.d/networking {start|stop|restart|force-reload}" exit 1 ;; esac exit 0