#!/bin/sh -e ### BEGIN INIT INFO # Provides: networking # Required-Start: mountvirtfs $local_fs # Required-Stop: $local_fs # Should-Start: ifupdown # Should-Stop: ifupdown # Default-Start: S # 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" CONF="/etc/sololink.conf" [ -x /sbin/ifup ] || exit 0 check_network_file_systems() { [ -e /proc/mounts ] || return 0 if [ -e /etc/iscsi/iscsi.initramfs ]; then echo "not deconfiguring network interfaces: iSCSI root is mounted." 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*) echo "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) echo "not deconfiguring network interfaces: network file systems still mounted." exit 0 ;; esac done exec 0<&9 9<&- } check_network_swap() { [ -e /proc/swaps ] || return 0 exec 9<&0 < /proc/swaps while read DEV MTPT FSTYPE REST; do case $DEV in /dev/nbd*|/dev/nd[a-z]*|/dev/etherd/e*) echo "not deconfiguring network interfaces: network swap still mounted." exit 0 ;; esac done exec 0<&9 9<&- } isEnabled() { grep -i -q "[[:space:]]*$2[[:space:]]*=[[:space:]]*True" $1 } case "$1" in start) echo -n "Configuring network interfaces... " sysctl -e -p /etc/sysctl.conf >/dev/null 2>&1 # Since we might modprobe -r ath9k in a networking shutdown, # be sure to re-modprobe it at a startup modprobe ath9k ifup -a if [ -e /sys/class/net/wlan0 ]; then # if the config file exists and StationEnable is True, bring up wlan0 if [ -f $CONF ] && isEnabled $CONF StationEnable; then ifup wlan0 fi else # this should exist on both solo and controller echo -n "(wlan0 does not exist!) " fi if [ -e /sys/class/net/wlan0-ap ]; then # if the config file does not exist, or if it does and ApEnable is # True, bring up wlan0-ap if [ ! -f $CONF ] || isEnabled $CONF ApEnable; then ifup wlan0-ap fi fi echo "done." ;; stop) check_network_file_systems check_network_swap echo -n "Deconfiguring network interfaces... " ifdown wlan0 &> /dev/null ifdown wlan0-ap &> /dev/null ifdown -a echo "done." ;; force-reload|restart) echo "Running $0 $1 is deprecated because it may not enable again some interfaces" echo "Reconfiguring network interfaces... " # this will restart only the "auto" interfaces (not wlan0 or wlan0-ap) ifdown -a || true ifup -a echo "done." ;; *) echo "Usage: /etc/init.d/networking {start|stop}" exit 1 ;; esac exit 0