version 1.5, 2000/02/08 17:34:24
|
version 1.6, 2000/02/10 23:20:13
|
Line 64 sub REAPER { # ta
|
Line 64 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 90 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 179 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}++; |
|
} |
} |
} |
} |
} |
} |