auto restarting a ppp connection

Giorgos Keramidas keramida at ceid.upatras.gr
Fri May 2 08:22:12 PDT 2003


On 2003-05-02 21:44, Paul Hamilton <paul at computerwest.com.au> wrote:
> Hi All,
>
> I am running FreeBSD 4.7, and using the built in ppp (and ppp nat),
> software to make a pppoe connection.
>
> Once or twice a month my ISP does something that causes my connection
> to be blocked.  The only way to fix this is to kill the ppp connection
> and re-start it.  I have tried to put the whole routine into a script,
> ie, find the pid, kill it, wait, then restart the ppp connection.  The
> idea, was that I could link it with a ping tester, then when I miss
> 'x' number of pings, restart the connection.  This is what I used:-
>
> --snip---
>
> PPP=`ps -ax | grep "ppp -nat" | grep -v "grep" | cut -c 1-6`
> if test $PPP
> #if test $PPP != ""
>  then
>    kill -15 $PPP
>    echo Wait for 5 seconds to properly kill the old PPP process
>    printf "%s"  "."
>    sleep 1
>    printf "%s"  "."
>    sleep 1
>    printf "%s"  "."
>    sleep 1
>    printf "%s"  "."
>    sleep 1
>    printf "%s"  "."
>    sleep 1
>    printf "%s\n"  "."
>    sleep 1
>  else
>    echo
>    echo No PPP process found to kill
> fi
> ---snip---
>
> I found that my script had problems with killing the ppp pid, in that it
> didn't really kill the ppp process, until the script had exited.

After the 5 seconds have passed it's relatively "safe" to kill -9 $PPP.

Whenever there is a problem with my PPP connection,
I write something like this:

	killall ppp ; sleep 5 ; killall ppp ; sleep 10 ; killall -9 ppp

:)



More information about the freebsd-questions mailing list