[LON-CAPA-cvs] cvs: loncom / loncron lonhttpd doc/loncapafiles loncapafiles.lpml

www lon-capa-cvs@mail.lon-capa.org
Tue, 29 Oct 2002 20:21:32 -0000


www		Tue Oct 29 15:21:32 2002 EDT

  Added files:                 
    /loncom	lonhttpd 

  Modified files:              
    /doc/loncapafiles	loncapafiles.lpml 
    /loncom	loncron 
  Log:
  The little server that could (on port 8080).
  
  
Index: doc/loncapafiles/loncapafiles.lpml
diff -u doc/loncapafiles/loncapafiles.lpml:1.182 doc/loncapafiles/loncapafiles.lpml:1.183
--- doc/loncapafiles/loncapafiles.lpml:1.182	Fri Oct 25 10:05:28 2002
+++ doc/loncapafiles/loncapafiles.lpml	Tue Oct 29 15:21:32 2002
@@ -3,7 +3,7 @@
 <!-- loncapafiles.lpml -->
 <!-- Scott Harrison -->
 
-<!-- $Id: loncapafiles.lpml,v 1.182 2002/10/25 14:05:28 www Exp $ -->
+<!-- $Id: loncapafiles.lpml,v 1.183 2002/10/29 20:21:32 www Exp $ -->
 
 <!--
 
@@ -1094,6 +1094,14 @@
 <categoryname>script</categoryname>
 <description>
 Batch script for removing temporary tables from the SQL metadata database.
+</description>
+</file>
+<file>
+<source>loncom/lonhttpd</source>
+<target dist='default'>home/httpd/perl/lonhttpd</target>
+<categoryname>script</categoryname>
+<description>
+Small fry httpd on port 8080
 </description>
 </file>
 <file>
Index: loncom/loncron
diff -u loncom/loncron:1.33 loncom/loncron:1.34
--- loncom/loncron:1.33	Mon Sep  9 09:59:16 2002
+++ loncom/loncron	Tue Oct 29 15:21:32 2002
@@ -154,6 +154,7 @@
 <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>
@@ -592,6 +593,103 @@
 }
 
 $fname="$perlvar{'lonDaemons'}/logs/lonc.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);
+# -------------------------------------------------------------------- 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, sending USR1</h3>";
+      kill USR1 => $lonhttpdpid;
+      $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,