Hey All,

I have a perl script here (below) that becomes a daemon when ever I run
it.  But when ever it goes to read the script it it dies on me?

Can any one tell me what is going on here?

If I remark (#) the read_config(); in the while loop the daemon doesn't
break.  Does any one here have any suggestions?

Regards,

Dan

#!/usr/bin/perl -w

use POSIX qw(setsid);
use Data::Dumper;
use Net::SSH::Perl;

chdir '/'                 or die "Can't chdir to /: $!";
umask 0;
open STDIN, '/dev/null'   or die "Can't read /dev/null: $!";
#open STDOUT, '>/dev/null' or die "Can't write to /dev/null: $!";
open STDERR, '>/dev/null' or die "Can't write to /dev/null: $!";
defined(my $pid = fork)   or die "Can't fork: $!";
exit if $pid;
setsid                    or die "Can't start a new session: $!";

my $tunnelfile = 'config';  #Sets the config file as $tunnelfile.
my $sleep      = 2;        #How long do you want the script to check for
IP change?
my $srt        = 0;
my %tunnels;

while(1) {
   sleep(1);
   print "Hello...\n";
   system ("ifconfig ppp0 > /etc/ppp/ppp.txt");
   open (FH, "</etc/ppp/ppp.txt"); #...and open the textfile for reading
   @test=<FH>; #Store ppp0 as an array
   $test[1] =~ /addr:(\d+\.\d+.\d+\.\d+)/; #Extact the IP address here
and stote as $1
   close(FH);
   read_config();
}

sub read_config {
    open (FILE, "<$tunnelfile") or die "cannot open '$tunnelfile':
$!\n";
    while( <FILE> ) {
       my $tunnelname = $1 and next if /^\s*\[\s*(.*?)\s*\]\s*$/;
       next unless defined $tunnelname && /^\s*(.*?)\s*=\s*(.*?)\s*$/;
       $tunnels{$tunnelname}{$1} = $2;
    }
    close(FILE);
    return %tunnels;
}

==============================
VINTEK CONSULTING PTY LTD
(ACN 088 825 209)
Email:  [EMAIL PROTECTED]
WWW:    http://www.vintek.net
Tel:    (08) 8523 5035
Fax:    (08) 8523 2104
Snail:  P.O. Box 312
        Gawler   SA   5118
==============================


--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to