This script is a really good idea. I'd still like to know how to setup the pppd to be run from initrd and the inittab file. Does anyone on the list have a rather specific idea on how to do this? I tried changing the options to have '-detach' and then disabling auto ppp0 in interfaces and then adding 'pd:23:respawn:/usr/sbin/pppd call dsl-provider eth0' to inittab, but that didn't work. Anyone know how to get it to work or what I did wrong?

Alex, thanks for your input, I'll ll use your script if nobody can help me out with this process.

--
Raymond Page

On Thu Dec 11 03:02:28 EST 2003, Alex Rhomberg <[EMAIL PROTECTED]> wrote:

I'm curious how to get pppd to auto redial when my connection
dies.

<snipalot>


Just respawning the pppd is not sufficient, I had times when pppd ran and
the ppp0 interface was visible but did not have an IP address. IMHO the pppd
should be changed that so it never quits, doesn't run twice on the same
interface and retries constantly. In the meantime, I'm using the script
below, called "pppwatch". If the ppp connection is down for 15 seconds, ppp
is restarted. Arguments are the interface (ppp0), the dsl-provider and the
ethernet interface. The script would have to be changed if you need more
than one ppp connection (sometimes it kills all pppds)


I have pppwatch in /etc/ppp/ and start it in /etc/network/interfaces:
auto ppp0
iface ppp0 inet ppp
pre-up ip link set eth1 up
provider cybernet eth1
up /etc/ppp/pppwatch ppp0 cybernet eth1 >/dev/null </dev/null 2>&1 &


#!/bin/sh

IFACE=$1
PROVIDER=$2
ETHFACE=$3

PIDFILE=/var/run/pppwatch-$IFACE.pid

echo "Watching $IFACE $PROVIDER $ETHFACE"

if [ -r $PIDFILE ]; then
    PID=`cat $PIDFILE`
    if kill -CONT $PID 2>/dev/null; then
        #already running
        exit
    fi
fi

echo $$ >$PIDFILE

while true; do
    if ip addr show $IFACE | grep inet >/dev/null 2>&1; then
    else
        sleep 10
        if ip addr show $IFACE | grep inet >/dev/null 2>&1; then
        else
            #at least 10 seconds without ppp

echo "$0: Restarting Networking, no $IFACE" |logger

            PID=`ps axw | grep "[ /]pppd call $PROVIDER "`
            if test -n "$PID" ; then
                echo "$0: killing pppd" |logger
                killall -9 pppd
            fi

            sleep 5
            #try to restart ppp service
            pon $PROVIDER $ETHFACE

        fi
    fi
    sleep 5
done






-- Raymond Page



-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
------------------------------------------------------------------------
leaf-user mailing list: [EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-user
SR FAQ: http://leaf-project.org/pub/doc/docmanager/docid_1891.html

Reply via email to