#!/usr/bin/perl
### Programm zum Ueberwachen des PPPd (c) 2005 by I.S.

use warnings;

open(LOG, "/var/log/daemon");                 ### logfile lesen
@log = <LOG>;
close(LOG);

foreach(@log){

  if ( grep /Oops, RCR in Initial/, $_ ){     ### error check

    open(PS, "ps ax |");                      ### kill pppd

    while(<PS>){
      if ( (grep (/ddial/, $_)) && (!grep (/grep/, $_)) ){
        $_ =~ s#^\s*(\w+).+$#$1#;
        kill 9, $_;
      }
    }

    close(PS);

    system("newsyslog -F /var/log/daemon &"); ### force newsyslog 
    
    system("ppp -ddial pppoe &");             ### restart daemon
    
    last;

}}

###EOF###


