--- loncom/lond 2003/09/29 10:09:18 1.148
+++ loncom/lond 2003/09/30 10:16:06 1.150
@@ -2,7 +2,7 @@
# The LearningOnline Network
# lond "LON Daemon" Server (port "LOND" 5663)
#
-# $Id: lond,v 1.148 2003/09/29 10:09:18 foxr Exp $
+# $Id: lond,v 1.150 2003/09/30 10:16:06 foxr Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -60,6 +60,15 @@
# 09/08/2003 Ron Fox: Told lond to take care of change logging so we
# don't have to remember it:
# $Log: lond,v $
+# Revision 1.150 2003/09/30 10:16:06 foxr
+# Added invocation of apachereload in ReloadApache sub.
+# This completes the addtion of the reinit functionality.
+#
+# Revision 1.149 2003/09/30 09:44:13 foxr
+# Tested UpdateHosts ability to
+# - Remove live children for hosts that are no longer in the hosts.tab
+# - Remove live children for hosts whose IPs have changed in the hosts.tab
+#
# Revision 1.148 2003/09/29 10:09:18 foxr
# Put in logic to reinit lond itself (except for apache reload). I don't believe
# this logic works correctly yet, however lond still does everything it used to doso I'll do the commit anyway.
@@ -120,7 +129,7 @@ my $DEBUG = 0; # Non zero to ena
my $status='';
my $lastlog='';
-my $VERSION='$Revision: 1.148 $'; #' stupid emacs
+my $VERSION='$Revision: 1.150 $'; #' stupid emacs
my $remoteVERSION;
my $currenthostid;
my $currentdomainid;
@@ -583,8 +592,13 @@ sub ReadHostTable {
}
#
# Reload the Apache daemon's state.
+# This is done by invoking /home/httpd/perl/apachereload
+# a setuid perl script that can be root for us to do this job.
#
sub ReloadApache {
+ my $execdir = $perlvar{'lonDaemons'};
+ my $script = $execdir."/apachereload";
+ system($script);
}
#
@@ -613,7 +627,12 @@ sub UpdateHosts {
foreach my $child (keys %children) {
my $childip = $children{$child};
if(!$hostid{$childip}) {
+ logthis(' UpdateHosts killing child '
+ ." $child for ip $childip ");
kill('INT', $child);
+ } else {
+ logthis(' keeping child for ip '
+ ." $childip (pid=$child) ");
}
}
ReloadApache;