#!/bin/sh PATH=/sbin:/usr/sbin:/bin:/usr/bin # ifup-post for PPP is handled through /etc/ppp/ip-up if [ "$1" != daemon ] ; then # disconnect stdin, out, err to disassociate from controlling tty # so that no HUPs will get through. $0 daemon $* /dev/null 2>/dev/null & exit 0 fi shift cd /etc/sysconfig/network-scripts . network-functions CONFIG=$1 source_config if [ -z "$DISCONNECTTIMEOUT" ]; then DISCONNECTTIMEOUT=15 fi if [ -z "$RETRYTIMEOUT" ]; then RETRYTIMEOUT=30 fi if [ "$2" = "boot" -a "${ONBOOT}" = "no" ]; then exit fi [ -x /usr/sbin/pppd ] || { echo "/usr/sbin/pppd does not exist or is not executable" echo "ifup-ppp for $DEVICE exiting" logger -p daemon.info -t ifup-pppoe \ "/usr/sbin/pppd does not exist or is not executable for $DEVICE" exit 1 } if [ ! -n "$PPPOEDEVICE" -o "x$PPPOEDEVICE" = "x" ]; then PPPOEDEVICE=eth0 fi while : ; do if [ ! -n "${PPPPID}" -o ! -d "/proc/${PPPPID}" ]; then (logger -p daemon.info -t ifup-pppoe \ "pppoed started" &)& echo $PPPDEVICE > /var/run/ppp-$PPPDEVICE.dev /usr/sbin/pppoed -I $PPPOEDEVICE $PPPOEOPTIONS sleep 10 PPPPID=`cat /var/run/$PPPDEVICE.pid` fi # exit if we're not supposed to persist or our lock file has disappeared if [ "$PERSIST" != "yes" -o ! -f /var/run/ppp-$PPPDEVICE.dev ]; then rm -f /var/run/ppp-$PPPDEVICE.dev exit 0 fi size=`wc -c < /var/run/ppp-$PPPDEVICE.dev` if [ $size = 0 ]; then # pppd never connected timeout=$RETRYTIMEOUT else # pppd connected and then disconnected timeout=$DISCONNECTTIMEOUT fi [ -z "$timeout" ] && { timeout=30 } sleep $timeout || { # sleep was killed rm -f /var/run/ppp-$PPPDEVICE.dev exit 0 } # exit if our lock file disappeared while we slept if [ ! -f /var/run/ppp-$PPPDEVICE.dev ]; then exit 0 fi done