version 1.59, 2004/09/22 10:46:06
|
version 1.60, 2004/09/22 11:11:54
|
Line 106 my $LondVersion = "unknown"; # Versi
|
Line 106 my $LondVersion = "unknown"; # Versi
|
my $KeyMode = ""; # e.g. ssl, local, insecure from last connect. |
my $KeyMode = ""; # e.g. ssl, local, insecure from last connect. |
my $LondConnecting = 0; # True when a connection is being built. |
my $LondConnecting = 0; # True when a connection is being built. |
|
|
|
|
|
# DO NOT SET THE NEXT VARIABLE TO NON ZERO!!!!!!!!!!!!!!! |
|
|
my $DieWhenIdle = 0; # When true children die when trimmed -> 0. |
my $DieWhenIdle = 0; # When true children die when trimmed -> 0. |
|
|
# |
# |
Line 1689 Log("CRITICAL", "--------------- Startin
|
Line 1692 Log("CRITICAL", "--------------- Startin
|
|
|
LondConnection::ReadConfig; # Read standard config files. |
LondConnection::ReadConfig; # Read standard config files. |
my $HostIterator = LondConnection::GetHostIterator; |
my $HostIterator = LondConnection::GetHostIterator; |
while (! $HostIterator->end()) { |
|
|
|
my $hostentryref = $HostIterator->get(); |
if ($DieWhenIdle) { |
CreateChild($hostentryref->[0]); |
print "Die when idle socket monitoring is not yet implemented\n"; |
$HostHash{$hostentryref->[0]} = $hostentryref->[4]; |
exit(-1); |
$HostIterator->next(); |
} else { |
|
|
|
while (! $HostIterator->end()) { |
|
|
|
my $hostentryref = $HostIterator->get(); |
|
CreateChild($hostentryref->[0]); |
|
$HostHash{$hostentryref->[0]} = $hostentryref->[4]; |
|
$HostIterator->next(); |
|
} |
} |
} |
|
|
$RemoteHost = "Parent Server"; |
$RemoteHost = "Parent Server"; |
|
|
# Maintain the population: |
# Maintain the population: |
Line 1706 ShowStatus("Parent keeping the flock");
|
Line 1717 ShowStatus("Parent keeping the flock");
|
# Set up parent signals: |
# Set up parent signals: |
# |
# |
|
|
$SIG{INT} = \&Terminate; |
if ($DieWhenIdle) { |
$SIG{TERM} = \&Terminate; |
print "Die when idle main processing not yet implemented"; |
$SIG{HUP} = \&Restart; |
exit (-1); |
$SIG{USR1} = \&CheckKids; |
} else { |
$SIG{USR2} = \&UpdateKids; # LonManage update request. |
|
|
$SIG{INT} = \&Terminate; |
while(1) { |
$SIG{TERM} = \&Terminate; |
my $deadchild = wait(); |
$SIG{HUP} = \&Restart; |
if(exists $ChildHash{$deadchild}) { # need to restart. |
$SIG{USR1} = \&CheckKids; |
my $deadhost = $ChildHash{$deadchild}; |
$SIG{USR2} = \&UpdateKids; # LonManage update request. |
delete($HostToPid{$deadhost}); |
|
delete($ChildHash{$deadchild}); |
while(1) { |
Log("WARNING","Lost child pid= ".$deadchild. |
my $deadchild = wait(); |
"Connected to host ".$deadhost); |
if(exists $ChildHash{$deadchild}) { # need to restart. |
Log("INFO", "Restarting child procesing ".$deadhost); |
my $deadhost = $ChildHash{$deadchild}; |
CreateChild($deadhost); |
delete($HostToPid{$deadhost}); |
|
delete($ChildHash{$deadchild}); |
|
Log("WARNING","Lost child pid= ".$deadchild. |
|
"Connected to host ".$deadhost); |
|
Log("INFO", "Restarting child procesing ".$deadhost); |
|
CreateChild($deadhost); |
|
} |
} |
} |
} |
} |
|
|
|
|
|
|
=pod |
=pod |
|
|
=head1 CheckKids |
=head1 CheckKids |