Viitor_upstart/etc/init/ifup
kueller 061ddf553e IN neuer Upstart version liegen die Scripte unter init, und nicht mehr
unter event.d



git-svn-id: svn://svn.compuextreme.de/Viitor/V962/Viitor_upstart@5503 504e572c-2e33-0410-9681-be2bf7408885
2010-04-20 12:47:00 +00:00

83 lines
1.9 KiB
Plaintext

# rc - runlevel compatibility
#
# This task guesses what the "default runlevel" should be and starts the
# appropriate script.
start on stopped maccfg
stop on stopping mountfs
console logged
pre-start script
WAITTIME=7
for IF in `ls -d /sys/class/net/*[^lo]`; do
DEVNAME=`basename $IF`
if [ -d /sys/class/net/$DEVNAME/wireless ]; then
/sbin/wlan_setup $DEVNAME
#give wlan a chance go create link
sleep 1
fi
if [ -f /usr/sbin/ethtool ]; then
ifconfig $DEVNAME up
ZAHLER=0
if ! ethtool $DEVNAME|grep -q "No data available"; then
while [ ${ZAHLER} -le ${WAITTIME} ]; do
if [ `ethtool $DEVNAME|grep Link|awk '{print $3}'` == "yes" ]; then
(( ZAHLER++ ))
else
break
fi
sleep 1
done
fi
fi
ifconfig $DEVNAME up
ZAHLER=0
while [ ${ZAHLER} -le ${WAITTIME} ]; do
if [ "`cat /sys/class/net/$DEVNAME/carrier`" == "0" ]; then
(( ZAHLER++ ))
else
break
fi
sleep 1
done
end script
script
for IF in `ld -d /sys/class/net/*[^lo]`; do
DEVNAME=`basename $IF`
if [ -f /usr/sbin/ethtool ]; then
DEVSTATUS=`ethtool $DEVNAME|grep Link|awk '{print $3}'`
fi
if [ "$DEVSTATUS" == "yes" ] || [ `cat /sys/class/net/$DEVNAME/carrier` == "1" ]; then
/sbin/if_up $DEVNAME
touch /var/run/net_up
fi
done
end script
post-start script
if [ ! -f /var/run/net_up ] && [ -f /etc/nsswitch.default ]; then
cp /etc/nsswitch.files /etc/nsswitch.conf
touch /var/state/ldap_disable
else
if [ ! -f /var/run/nsswitch_done ] && [ -f /etc/nsswitch.default ]; then
cp /etc/nsswitch.default /etc/nsswitch.conf
touch /var/state/ldap_disable
fi
if [ -f /var/run/net_up ]; then
rm /var/run/net_up
fi
if [ -f /var/run/nsswitch.done ]; then
rm /var/run/nsswitch.done
fi
fi
end script
post-stop script
for IF in `ls -d /sys/class/net/*[^lo]`; do
DEVNAME=`basename $IF`
/sbin/if_down $DEVNAME
done
end script