mirror of
git://slackware.nl/current.git
synced 2025-01-09 05:24:36 +01:00
63 lines
1.9 KiB
Bash
63 lines
1.9 KiB
Bash
|
#!/bin/sh
|
||
|
DEVNAME="$1"
|
||
|
COMMAND="$2"
|
||
|
|
||
|
testwrite() {
|
||
|
if touch /var/run/checkrw 2>/dev/null ; then
|
||
|
rm -rf /var/run/checkrw
|
||
|
RW=1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
case $DEVNAME in
|
||
|
eth*|ath*|wlan*|ra*|sta*|ctc*|lcs*|hsi*)
|
||
|
case $COMMAND in
|
||
|
'start')
|
||
|
testwrite
|
||
|
|
||
|
if [ $RW ]; then
|
||
|
if [ -x /etc/rc.d/rc.inet1 ]; then
|
||
|
if ! /sbin/ifconfig | /bin/grep -q "^${DEVNAME} "; then
|
||
|
/etc/rc.d/rc.inet1 ${DEVNAME}_start
|
||
|
fi
|
||
|
fi
|
||
|
exit 0
|
||
|
else
|
||
|
exit 1
|
||
|
fi
|
||
|
;;
|
||
|
'stop')
|
||
|
if [ -x /etc/rc.d/rc.inet1 ]; then
|
||
|
if /sbin/ifconfig | /bin/grep -q "^${DEVNAME} "; then
|
||
|
/etc/rc.d/rc.inet1 ${DEVNAME}_stop
|
||
|
fi
|
||
|
fi
|
||
|
# Does dhcpcd appear to still be running on the
|
||
|
# interface? If so, try to stop it.
|
||
|
if [ -r /etc/dhcpc/dhcpcd-$DEVNAME.pid -o -r /var/run/dhcpcd-$DEVNAME.pid ]; then
|
||
|
/sbin/dhcpcd -k -d $DEVNAME
|
||
|
# Force garbage removal, if needed:
|
||
|
if [ -r /etc/dhcpc/dhcpcd-$DEVNAME.pid ]; then
|
||
|
/bin/rm -f /etc/dhcpc/dhcpcd-$DEVNAME.pid
|
||
|
elif [ -r /var/run/dhcpcd-$DEVNAME.pid ]; then
|
||
|
/bin/rm -f /var/run/dhcpcd-$DEVNAME.pid
|
||
|
fi
|
||
|
fi
|
||
|
# If the interface is now down, exit with a status of 0:
|
||
|
if /sbin/ifconfig | /bin/grep -q "^${DEVNAME} " ; then
|
||
|
exit 0
|
||
|
fi
|
||
|
;;
|
||
|
*)
|
||
|
echo "usage $0 interface start|stop"
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
*)
|
||
|
echo "Interface $DEVNAME not supported."
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|
||
|
exit 0
|