--- loncom/loncron	2002/07/27 19:06:41	1.32
+++ loncom/loncron	2003/04/07 18:19:23	1.38
@@ -9,13 +9,9 @@
 #
 # 7/14,7/15,7/19,7/21,7/22,11/18,
 # 2/8 Gerd Kortemeyer
-# 12/6/2000,12/8 Scott Harrison
 # 12/23 Gerd Kortemeyer
 # YEAR=2001
-# 1/10/2001, 2/12/, 2/26, 3/15, 04/11, 04/21,8/27 Scott Harrison
 # 09/04,09/06,11/26 Gerd Kortemeyer
-# YEAR=2002
-# 5/11/2002 Scott Harrison
 
 $|=1;
 
@@ -56,8 +52,7 @@ ENDERROUT
 # ================================================================ Main Program
 
 # --------------------------------- Read loncapa_apache.conf and loncapa.conf
-my $perlvarref=LONCAPA::Configuration::read_conf('loncapa_apache.conf',
-                                                 'loncapa.conf');
+my $perlvarref=LONCAPA::Configuration::read_conf('loncapa.conf');
 %perlvar=%{$perlvarref};
 undef $perlvarref;
 delete $perlvar{'lonReceipt'}; # remove since sensitive and not needed
@@ -155,6 +150,7 @@ print $fh (<<ENDHEADERS);
 <li><a href="#lonsql">lonsql</a>
 <li><a href="#lond">lond</a>
 <li><a href="#lonc">lonc</a>
+<li><a href="#lonhttpd">lonhttpd</a>
 <li><a href="#lonnet">lonnet</a>
 <li><a href="#connections">Connections</a>
 <li><a href="#delayed">Delayed Messages</a>
@@ -407,7 +403,7 @@ if ($perlvar{'lonRole'} eq "library") {
 	$atime,$mtime,$ctime,
 	$blksize,$blocks)=stat($fname);
 
-    if ($size>40000) {
+    if ($size>200000) {
 	print $fh "Rotating logs ...<p>";
 	rename("$fname.2","$fname.3");
 	rename("$fname.1","$fname.2");
@@ -608,6 +604,102 @@ if ($size>40000) {
 
    
 &errout($fh);
+# -------------------------------------------------------------------- lonhttpd
+
+print $fh '<hr><a name="lonhttpd"><h2>lonhttpd</h2><h3>Log</h3><pre>';
+print "lonhttpd\n";
+
+if (-e "$perlvar{'lonDaemons'}/logs/lonhttpd.log"){
+open (DFH,"tail -n25 $perlvar{'lonDaemons'}/logs/lonhttpd.log|");
+while ($line=<DFH>) { 
+   print $fh "$line";
+   if ($line=~/INFO/) { $notices++; }
+   if ($line=~/WARNING/) { $notices++; }
+   if ($line=~/CRITICAL/) { $warnings++; }
+};
+close (DFH);
+}
+print $fh "</pre>";
+
+my $lonhttpdfile="$perlvar{'lonDaemons'}/logs/lonhttpd.pid";
+
+$restartflag=1;
+if (-e $lonhttpdfile) {
+   my $lfh=IO::File->new("$lonhttpdfile");
+   my $lonhttpdpid=<$lfh>;
+   chomp($lonhttpdpid);
+   if (kill 0 => $lonhttpdpid) {
+      print $fh "<h3>lonhttpd at pid $lonhttpdpid responding</h3>";
+      $restartflag=0;
+   } else {
+      $errors++;
+      print $fh "<h3>lonhttpd at pid $lonhttpdpid not responding</h3>";
+      # Solution: kill parent and children processes, remove .pid and restart
+	  $restartflag=1;
+      print $fh 
+	  "<h3>Decided to clean up stale .pid file and restart lonhttpd</h3>";
+   }
+} 
+if ($restartflag==1) {
+   $errors++;
+	  print $fh '<br><font color="red">Killall lonhttpd: '.
+	            system('killall lonhttpd').' - ';
+          sleep 2;
+          print $fh unlink($lonhttpdfile).' - '.system('killall -9 lonhttpd').
+                    '</font><br>';
+   print $fh "<h3>lonhttpd not running, trying to start</h3>";
+	system(
+ "$perlvar{'lonDaemons'}/lonhttpd 2>>$perlvar{'lonDaemons'}/logs/lonhttpd_errors");
+   sleep 2;
+   if (-e $lonhttpdfile) {
+       print $fh "Seems like it started ...<p>";
+       my $lfh=IO::File->new("$lonhttpdfile");
+       my $lonhttpdpid=<$lfh>;
+       chomp($lonhttpdpid);
+       sleep 2;
+       if (kill 0 => $lonhttpdpid) {
+          print $fh "<h3>lonhttpd at pid $lonhttpdpid responding</h3>";
+       } else {
+          $errors++; $errors++;
+          print $fh "<h3>lonhttpd at pid $lonhttpdpid not responding</h3>";
+          print $fh "Give it one more try ...<p>";
+ 	  system(
+ "$perlvar{'lonDaemons'}/lonhttpd 2>>$perlvar{'lonDaemons'}/logs/lonhttpd_errors");
+          sleep 2;
+       }
+   } else {
+       print $fh "Seems like that did not work!<p>";
+       $errors++;
+   }
+   if (-e "$perlvar{'lonDaemons'}/logs/lonhttpd.log") {
+    print $fh "<p><pre>";
+    open (DFH,"tail -n100 $perlvar{'lonDaemons'}/logs/lonhttpd.log|");
+    while ($line=<DFH>) { 
+      print $fh "$line";
+      if ($line=~/WARNING/) { $notices++; }
+      if ($line=~/CRITICAL/) { $notices++; }
+    };
+    close (DFH);
+    print $fh "</pre>";
+   }
+}
+
+$fname="$perlvar{'lonDaemons'}/logs/lonhttpd.log";
+
+                          my ($dev,$ino,$mode,$nlink,
+                              $uid,$gid,$rdev,$size,
+                              $atime,$mtime,$ctime,
+                              $blksize,$blocks)=stat($fname);
+
+if ($size>40000) {
+    print $fh "Rotating logs ...<p>";
+    rename("$fname.2","$fname.3");
+    rename("$fname.1","$fname.2");
+    rename("$fname","$fname.1");
+}
+
+   
+&errout($fh);
 # ---------------------------------------------------------------------- lonnet
 
 print $fh '<hr><a name="lonnet"><h2>lonnet</h2><h3>Temp Log</h3><pre>';
@@ -713,7 +805,10 @@ rename ("$statusdir/newstatus.html","$st
 
 if ($totalcount>200) {
    print "mailing\n";
-   $emailto="$perlvar{'lonAdmEMail'},$perlvar{'lonSysEMail'}";
+   $emailto="$perlvar{'lonAdmEMail'}";
+   if ($totalcount>600) {
+      $emailto.=",$perlvar{'lonSysEMail'}";
+   }
    $subj="LON: $perlvar{'lonHostID'} E:$errors W:$warnings N:$notices"; 
    system(
  "metasend -b -t $emailto -s '$subj' -f $statusdir/index.html -m text/html");