[LON-CAPA-cvs] cvs: loncom(version_1_2_X) / lond

albertel lon-capa-cvs@mail.lon-capa.org
Mon, 02 Aug 2004 21:02:20 -0000


albertel		Mon Aug  2 17:02:20 2004 EDT

  Modified files:              (Branch: version_1_2_X)
    /loncom	lond 
  Log:
   - backport 1.221
  
  
Index: loncom/lond
diff -u loncom/lond:1.205 loncom/lond:1.205.2.1
--- loncom/lond:1.205	Sat Jul  3 14:49:42 2004
+++ loncom/lond	Mon Aug  2 17:02:20 2004
@@ -2,7 +2,7 @@
 # The LearningOnline Network
 # lond "LON Daemon" Server (port "LOND" 5663)
 #
-# $Id: lond,v 1.205 2004/07/03 18:49:42 raeburn Exp $
+# $Id: lond,v 1.205.2.1 2004/08/02 21:02:20 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -50,13 +50,14 @@
 use LONCAPA::ConfigFileEdit;
 use LONCAPA::lonlocal;
 use LONCAPA::lonssl;
+use Fcntl qw(:flock);
 
 my $DEBUG = 0;		       # Non zero to enable debug log entries.
 
 my $status='';
 my $lastlog='';
 
-my $VERSION='$Revision: 1.205 $'; #' stupid emacs
+my $VERSION='$Revision: 1.205.2.1 $'; #' stupid emacs
 my $remoteVERSION;
 my $currenthostid;
 my $currentdomainid;
@@ -1145,10 +1146,11 @@
     &logthis('Going to check on the children');
     my $docdir=$perlvar{'lonDocRoot'};
     foreach (sort keys %children) {
-	sleep 1;
+	#sleep 1;
         unless (kill 'USR1' => $_) {
 	    &logthis ('Child '.$_.' is dead');
             &logstatus($$.' is dead');
+	    delete($children{$_});
         } 
     }
     sleep 5;
@@ -1166,6 +1168,7 @@
 	    #my $result=`echo 'Killed lond process $_.' | mailto $emailto -s '$subj' > /dev/null`;
 	    #$execdir=$perlvar{'lonDaemons'};
 	    #$result=`/bin/cp $execdir/logs/lond.log $execdir/logs/lond.log.$_`;
+	    delete($children{$_});
 	    alarm(0);
 	  }
         }
@@ -1173,6 +1176,7 @@
     $SIG{ALRM} = 'DEFAULT';
     $SIG{__DIE__} = \&catchexception;
     &status("Finished checking children");
+    &logthis('Finished Checking children');
 }
 
 # --------------------------------------------------------------------- Logging
@@ -1217,17 +1221,19 @@
     &status("Doing logging");
     my $docdir=$perlvar{'lonDocRoot'};
     {
-    my $fh=IO::File->new(">>$docdir/lon-status/londstatus.txt");
-    print $fh $$."\t".$clientname."\t".$currenthostid."\t"
-	.$status."\t".$lastlog."\t $keymode\n";
-    $fh->close();
-    }
-    &status("Finished londstatus.txt");
-    {
 	my $fh=IO::File->new(">$docdir/lon-status/londchld/$$.txt");
         print $fh $status."\n".$lastlog."\n".time."\n$keymode";
         $fh->close();
     }
+    &status("Finished $$.txt");
+    {
+	open(LOG,">>$docdir/lon-status/londstatus.txt");
+	flock(LOG,LOCK_EX);
+	print LOG $$."\t".$clientname."\t".$currenthostid."\t"
+	    .$status."\t".$lastlog."\t $keymode\n";
+	flock(DB,LOCK_UN);
+	close(LOG);
+    }
     &status("Finished logging");
 }