Diff for /loncom/Attic/lonc between versions 1.5 and 1.7

version 1.5, 2000/02/08 17:34:24 version 1.7, 2000/07/25 16:03:57
Line 12 Line 12
   
 # 6/4/99,6/5,6/7,6/8,6/9,6/10,6/11,6/12,7/14,7/19,  # 6/4/99,6/5,6/7,6/8,6/9,6/10,6/11,6/12,7/14,7/19,
 # 10/8,10/9,10/15,11/18,12/22,  # 10/8,10/9,10/15,11/18,12/22,
 # 2/8 Gerd Kortemeyer   # 2/8,7/25 Gerd Kortemeyer 
 # based on nonforker from Perl Cookbook  # based on nonforker from Perl Cookbook
 # - server who multiplexes without forking  # - server who multiplexes without forking
   
Line 40  while ($configline=<CONFIG>) { Line 40  while ($configline=<CONFIG>) {
 }  }
 close(CONFIG);  close(CONFIG);
   
   # --------------------------------------------- Check if other instance running
   
   my $pidfile="$perlvar{'lonDaemons'}/logs/lonc.pid";
   
   if (-e $pidfile) {
      my $lfh=IO::File->new("$pidfile");
      my $pide=<$lfh>;
      chomp($pide);
      if (kill 0 => $pide) { die "already running"; }
   }
   
 # ------------------------------------------------------------- Read hosts file  # ------------------------------------------------------------- Read hosts file
   
 open (CONFIG,"$perlvar{'lonTabDir'}/hosts.tab") || die "Can't read host file";  open (CONFIG,"$perlvar{'lonTabDir'}/hosts.tab") || die "Can't read host file";
Line 64  sub REAPER {                        # ta Line 75  sub REAPER {                        # ta
     $SIG{CHLD} = \&REAPER;      $SIG{CHLD} = \&REAPER;
     my $pid = wait;      my $pid = wait;
     my $wasserver=$children{$pid};      my $wasserver=$children{$pid};
     &logthis(      &logthis("<font color=red>CRITICAL: "
      "<font color=red>CRITICAL: Child $pid for server $wasserver died</font>");       ."Child $pid for server $wasserver died ($childatt{$wasserver})</font>");
     delete $children{$pid};      delete $children{$pid};
     delete $childpid{$wasserver};      delete $childpid{$wasserver};
     my $port = "$perlvar{'lonSockDir'}/$wasserver";      my $port = "$perlvar{'lonSockDir'}/$wasserver";
Line 90  sub HUPSMAN {                      # sig Line 101  sub HUPSMAN {                      # sig
 }  }
   
 sub USRMAN {  sub USRMAN {
     %childatt=();  
     &logthis("USR1: Trying to establish connections again");      &logthis("USR1: Trying to establish connections again");
     foreach $thisserver (keys %hostip) {      foreach $thisserver (keys %hostip) {
  $answer=subreply("ping",$thisserver);   $answer=subreply("ping",$thisserver);
         &logthis(          &logthis("USR1: Ping $thisserver "
           "USR1: Ping $thisserver (pid >$childpid{$thisserver}<): >$answer<");          ."(pid >$childpid{$thisserver}<, $childatt{thisserver} attempts): "
           ." >$answer<");
     }      }
       %childatt=();
 }  }
   
 # -------------------------------------------------- Non-critical communication  # -------------------------------------------------- Non-critical communication
Line 178  while (1) { Line 190  while (1) {
                                     # See who died and start new one                                      # See who died and start new one
     foreach $thisserver (keys %hostip) {      foreach $thisserver (keys %hostip) {
         if (!$childpid{$thisserver}) {          if (!$childpid{$thisserver}) {
     if ($childatt{$thisserver}<=$childmaxattempt) {      if ($childatt{$thisserver}<=$childmaxattempts) {
        my $ainfoatt=1*$childatt{$thisserver};         $childatt{$thisserver}++;
                &logthis(                 &logthis(
    "<font color=yellow>INFO: Trying to reconnect for $thisserver "     "<font color=yellow>INFO: Trying to reconnect for $thisserver "
   ."($ainfoatt of $childmaxattempts attempts)</font>");     ."($childatt{$thisserver} of $childmaxattempts attempts)</font>"); 
                make_new_child($thisserver);                 make_new_child($thisserver);
                $childatt{$thisserver}++;  
     }      }
         }                 }       
     }      }

Removed from v.1.5  
changed lines
  Added in v.1.7


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>