/rc0.d/K20ifplugd
http://github.com/brinkman83/bashrc · Shell · 153 lines · 111 code · 15 blank · 27 comment · 31 complexity · b7ca12521dfa63e8da61bee98a086d22 MD5 · raw file
- #!/bin/sh
- # $Id: ifplugd.init.in 43 2003-09-13 11:25:11Z lennart $
- # This file is part of ifplugd.
- #
- # ifplugd is free software; you can redistribute it and/or modify it under
- # the terms of the GNU General Public License as published by the Free
- # Software Foundation; either version 2 of the License, or (at your
- # option) any later version.
- #
- # ifplugd is distributed in the hope that it will be useful, but WITHOUT
- # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- # for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with ifplugd; if not, write to the Free Software Foundation,
- # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- ### BEGIN INIT INFO
- # Provides: ifplugd
- # Required-Start: $network $remote_fs
- # Required-Stop: $network $remote_fs
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Short-Description: Brings up/down network automatically
- # Description: Brings networks interfaces up and down automatically when
- # the cable is removed / inserted
- ### END INIT INFO
- DAEMON_NAME=ifplugd
- CFG=/etc/default/$DAEMON_NAME
- DESC="Network Interface Plugging Daemon"
- IFPLUGD=/usr/sbin/$DAEMON_NAME
- test -x $IFPLUGD || exit 0
- if [ `id -u` != "0" ] && [ "$1" = "start" -o "$1" = "stop" ] ; then
- echo "You must be root to start, stop or restart ifplugd."
- exit 1
- fi
- [ -f $CFG ] && . $CFG
- VERB="$1"
- shift
- [ $# -ne 0 ] && INTERFACES="$@"
- all_interfaces () {
- for IFPATH in /sys/class/net/* ; do
- IFNAME="${IFPATH#/sys/class/net/}"
- [ -e "$IFPATH/device" ] || continue
- if [ -f "$IFPATH/type" ] ; then
- grep --quiet '^1$' "$IFPATH/type" || continue
- fi
- case "$IFNAME" in
- eth*|wlan*)
- echo $IFNAME
- ;;
- esac
- done
- }
- [ "x$INTERFACES" = "xauto" -o "x$INTERFACES" = "xall" ] && INTERFACES="$(all_interfaces)"
- . /lib/lsb/init-functions
- case "$VERB" in
- start)
- [ "$INTERFACES" ] || exit 0
- log_action_begin_msg "$DESC"
- for IF in $INTERFACES ; do
- if [ ! -e /sys/class/net/$IF ] || \
- $IFPLUGD -c -i $IF >/dev/null ; then
- log_action_cont_msg "skip $IF"
- continue
- fi
- log_action_cont_msg "start $IF"
- IF1=$(echo $IF | sed "s/-/_/")
- A=$(eval echo \$\{ARGS_${IF1}\})
- [ -z "$A" ] && A="$ARGS"
- $IFPLUGD -i $IF $A
- done
- log_action_end_msg 0
- ;;
- stop)
- [ "$INTERFACES" ] || exit 0
- log_action_begin_msg "$DESC"
- for IF in $INTERFACES ; do
- if [ ! -e /sys/class/net/$IF ] || \
- ! $IFPLUGD -c -i $IF >/dev/null ; then
- log_action_cont_msg "skip $IF"
- continue
- fi
- log_action_cont_msg "stop $IF"
- $IFPLUGD -k --wait-on-kill -i $IF
- done
- log_action_end_msg 0
- ;;
- status)
- [ "$INTERFACES" -o "$HOTPLUG_INTERFACES" ] || exit 0
- for IF in $INTERFACES $HOTPLUG_INTERFACES ; do
- if [ ! -e /sys/class/net/$IF ] ; then
- log_action_msg "$IF: device $IF is either not present or not functional"
- continue
- fi
- log_begin_msg "$IF: "
- $IFPLUGD -c -i $IF
- done
- ;;
- suspend)
- [ "$INTERFACES" -o "$HOTPLUG_INTERFACES" ] || exit 0
- log_action_begin_msg "$DESC"
- for IF in $INTERFACES $HOTPLUG_INTERFACES ; do
- if [ ! -e /sys/class/net/$IF ] || \
- ! $IFPLUGD -c -i $IF >/dev/null ; then
- log_action_cont_msg "skip $IF"
- continue
- fi
- log_action_cont_msg "suspend $IF"
- $IFPLUGD -S -i $IF
- done
- log_action_end_msg 0
- ;;
- resume)
- [ "$INTERFACES" -o "$HOTPLUG_INTERFACES" ] || exit 0
- log_action_begin_msg "$DESC"
- for IF in $INTERFACES $HOTPLUG_INTERFACES ; do
- if [ ! -e /sys/class/net/$IF ] || \
- ! $IFPLUGD -c -i $IF >/dev/null ; then
- log_action_cont_msg "skip $IF"
- continue
- fi
- log_action_cont_msg "resume $IF"
- $IFPLUGD -R -i $IF
- done
- log_action_end_msg 0
- ;;
- force-reload|restart)
- [ "$INTERFACES" ] || exit 0
- $0 stop $INTERFACES
- sleep 3
- $0 start $INTERFACES
- ;;
- *)
- echo "Usage: $0 {start|stop|restart|force-reload|status|suspend|resume}"
- exit 1
- esac
- exit 0