[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,