Link to home
Start Free TrialLog in
Avatar of mlvn23
mlvn23

asked on

time limit the connection

Hello, How do I configure PPP so that every X minutes it will disconnect, and reconnect again?
ASKER CERTIFIED SOLUTION
Avatar of freesource
freesource

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of mlvn23
mlvn23

ASKER

hmmm, what's pon and usernetctl?
Ok, why do you want that?
Actually, you don't need either pon or usernetctl .. you could use ppp-on which comes standard with ppp.

You can do a:

$ which pon
/usr/bin/pon
$ which usernetctl
$ which ppp-on
$ cat /usr/bin/pon
#!/bin/sh
/usr/sbin/pppd call ${1:-provider}

ppp-on on my system is found in ->
/usr/doc/ppp/examples/ppp-on

... or you could write your own script perhaps using ppp-on as a guideline to create a script to start up pppd .. then just replace pon in the script above with the script name you use to start your connection.

pon is found on Debian systems and usernetctl is usually found on Red Hat based systems.

I should point out two things about my script.  First, if you want it to be exactly a minute interval, edit the line which says "$ARGV[0] <= 59" to $ARGV[0] <= 49".  Then if you want 3 minute intervals go "name_you_give_the_script 170".  I leave 10 seconds to allow the modem to reset after it disconnects.  You may have to adjust these values, it just depends on your modem.

Secondly, if your modem gets disconnected by your service provider, this script will reconnect it .. so you get a bonus!
If its not your ISP who disconnect your connection, then, a setup with 'diald' would probably make more sense.
Avatar of mlvn23

ASKER

iyu 88: actually it's my ISP - specifically it's my University's policiy to disconnect all ppp connections every 30 min. as to give others chance in connecting. So I would like to disconnect on the 29th min bec. for some weird reason, ppp doesn't die on the 30th min even though the server already hung up - Others can steal the resources. BTW: the reason why I stick with my university's internet service is bec. it outperforms most commercial ISP in my country :) but only a handful of dial-up numbers  (no trunk lines) are available.
Avatar of mlvn23

ASKER

freesource:

   I script works but how do I use it in conjunction with a PPP script that I wrote using KPPP? And how do you stop the script after it gets executed?
What you need to do is find out how kppp executes the pppd script.

Doing a "ps auxw | grep pppd", would show me that  "/usr/sbin/pppd call provider" is used for the connection.

Then instead of pon, just edit the script so it looks like this:

$connection = "/usr/sbin/pppd call provider"; # fill in the appropriate thing

You should be about to find pppd, but if you can't just do a "ps auxw | less" and scan for something that looks like it executes the connection.

There several ways to kill the script.
If the script isn't running in the background just do [Ctrl]-[C].  If it is running in the background find out which job are running with "jobs" like this:

linuxalive:/etc/ppp/peers$ jobs
[2]+  Running                 pingy & 
linuxalive:/etc/ppp/peers$ kill %2

You can do this:
linuxalive:/etc/ppp/peers$ ps auxw | grep pingy
root      6945  0.1  1.5  2204   948  p5 S    13:08   0:00 perl /usr/sbin/pingy
linuxalive:/etc/ppp/peers$ kill 6945

You could get more sophisticated, too, but I think these methods should suffice.