Diff for /loncom/loncron between versions 1.6 and 1.13

version 1.6, 2000/10/26 22:21:02 version 1.13, 2001/01/10 17:39:36
Line 9 Line 9
 #  #
 # 7/14,7/15,7/19,7/21,7/22,11/18,  # 7/14,7/15,7/19,7/21,7/22,11/18,
 # 2/8 Gerd Kortemeyer  # 2/8 Gerd Kortemeyer
   # Dec 00 Scott Harrison
   # 12/23 Gerd Kortemeyer
   
 use IO::File;  use IO::File;
 use IO::Socket;  use IO::Socket;
Line 43  ENDERROUT Line 45  ENDERROUT
   
 # ================================================================ Main Program  # ================================================================ Main Program
   
   
 # ------------------------------------------------------------ Read access.conf  # ------------------------------------------------------------ Read access.conf
 {  {
     my $config=IO::File->new("/etc/httpd/conf/access.conf");      my $config=IO::File->new("/etc/httpd/conf/access.conf");
Line 56  ENDERROUT Line 57  ENDERROUT
     }      }
 }  }
   
   # ----------------------------- Make sure this process is running from user=www
   my $wwwid=getpwnam('www');
   if ($wwwid!=$<) {
       print("User ID mismatch.  This program must be run as user 'www'\n") unless $noprint;
      $emailto="$perlvar{'lonAdmEMail'},$perlvar{'lonSysEMail'}";
      $subj="LON: $perlvar{'lonHostID'} User ID mismatch";
      system("echo 'User ID mismatch.  loncron must be run as user www.' |\
    mailto $emailto -s '$subj' > /dev/null");
       exit 1;
   }
   
 # ------------------------------------------------------------- Read hosts file  # ------------------------------------------------------------- Read hosts file
 {  {
     my $config=IO::File->new("$perlvar{'lonTabDir'}/hosts.tab");      my $config=IO::File->new("$perlvar{'lonTabDir'}/hosts.tab");
Line 110  print $fh (<<ENDHEADERS); Line 122  print $fh (<<ENDHEADERS);
 <ol>  <ol>
 <li><a href="#configuration">Configuration</a>  <li><a href="#configuration">Configuration</a>
 <li><a href="#machine">Machine Information</a>  <li><a href="#machine">Machine Information</a>
   <li><a href="#tmp">Temporary Files</a>
   <li><a href="#tokens">Session Tokens</a>
 <li><a href="#httpd">httpd</a>  <li><a href="#httpd">httpd</a>
   <li><a href="#lonsql">lonsql</a>
 <li><a href="#lond">lond</a>  <li><a href="#lond">lond</a>
 <li><a href="#lonc">lonc</a>  <li><a href="#lonc">lonc</a>
 <li><a href="#lonnet">lonnet</a>  <li><a href="#lonnet">lonnet</a>
Line 182  while ($line=<DFH>) { Line 197  while ($line=<DFH>) {
 close (DFH);  close (DFH);
 print $fh "</pre>";  print $fh "</pre>";
 &errout($fh);  &errout($fh);
   
   # --------------------------------------------------------------- clean out tmp
   print $fh '<hr><a name="tmp"><h2>Temporary Files</h2>';
   $cleaned=0;
   while ($fname=<$perlvar{'lonDaemons'}/tmp/*>) {
                             my ($dev,$ino,$mode,$nlink,
                                 $uid,$gid,$rdev,$size,
                                 $atime,$mtime,$ctime,
                                 $blksize,$blocks)=stat($fname);
                             $now=time;
                             $since=$now-$mtime;
                             if ($since>$perlvar{'lonExpire'}) {
                                 $cleaned++;
                                 unlink("$fname");
                             }
       
   }
   print $fh "Cleaned up ".$cleaned." files.";
   
   # ------------------------------------------------------------ clean out lonIDs
   print $fh '<hr><a name="tokens"><h2>Session Tokens</h2>';
   $cleaned=0;
   $active=0;
   while ($fname=<$perlvar{'lonIDsDir'}/*>) {
                             my ($dev,$ino,$mode,$nlink,
                                 $uid,$gid,$rdev,$size,
                                 $atime,$mtime,$ctime,
                                 $blksize,$blocks)=stat($fname);
                             $now=time;
                             $since=$now-$mtime;
                             if ($since>$perlvar{'lonExpire'}) {
                                 $cleaned++;
                                 print $fh "Unlinking $fname<br>";
                                 unlink("$fname");
                             } else {
                                 $active++;
                             }
       
   }
   print $fh "<p>Cleaned up ".$cleaned." stale session token(s).";
   print $fh "<h3>$active open session(s)</h3>";
   
 # ----------------------------------------------------------------------- httpd  # ----------------------------------------------------------------------- httpd
   
 print $fh '<hr><a name="httpd"><h2>httpd</h2><h3>Access Log</h3><pre>';  print $fh '<hr><a name="httpd"><h2>httpd</h2><h3>Access Log</h3><pre>';
Line 202  print $fh "</pre>"; Line 259  print $fh "</pre>";
 &errout($fh);  &errout($fh);
   
   
 # ------------------------------------------------------------------------ lonsql  # ---------------------------------------------------------------------- lonsql
   #
   # Do not run for now
   #
 if ($perlvar{'lonRole'} eq "library" && 1==0) {  if ($perlvar{'lonRole'} eq "library" && 1==0) {
   
     print $fh '<hr><a name="lond"><h2>lonsql</h2><h3>Log</h3><pre>';      print $fh '<hr><a name="lonsql"><h2>lonsql</h2><h3>Log</h3><pre>';
           
     if (-e "$perlvar{'lonDaemons'}/logs/lonsql.log"){      if (-e "$perlvar{'lonDaemons'}/logs/lonsql.log"){
  open (DFH,"tail -n100 $perlvar{'lonDaemons'}/logs/lonsql.log|");   open (DFH,"tail -n100 $perlvar{'lonDaemons'}/logs/lonsql.log|");
Line 303  print $fh "</pre>"; Line 362  print $fh "</pre>";
   
 my $londfile="$perlvar{'lonDaemons'}/logs/lond.pid";  my $londfile="$perlvar{'lonDaemons'}/logs/lond.pid";
   
 if (-e $londfile) {  my $restartflag=1;
   if (-e $londfile) {    
    my $lfh=IO::File->new("$londfile");     my $lfh=IO::File->new("$londfile");
    my $londpid=<$lfh>;     my $londpid=<$lfh>;
    chomp($londpid);     chomp($londpid);
    if (kill 0 => $londpid) {     if (kill 0 => $londpid) {
       print $fh "<h3>lond at pid $londpid responding</h3>";        print $fh "<h3>lond at pid $londpid responding</h3>";
         $restartflag=0;
    } else {     } else {
       $errors++; $errors++;        $errors++;
       print $fh "<h3>lond at pid $londpid not responding</h3>";        print $fh "<h3>lond at pid $londpid not responding</h3>";
         # Intelligently handle this.
         # Possibility #1: there is no process
         # Solution: remove .pid file and restart
         if (getpgrp($londpid)==-1) {
     unlink($londfile);
     $restartflag=1;
         }
         else {
         # Possibility #2: there is a live process that is not responding
         #                 for an unknown reason
         # Solution: kill parent and children processes, remove .pid and restart
     `killall -9 lond`;
     unlink($londfile);
     $restartflag=1;
         }
         print $fh 
     "<h3>Deciding to clean up stale .pid file and restart lond</h3>";
    }     }
 } else {  } 
   if ($restartflag==1) {
    $errors++;     $errors++;
    print $fh "<h3>lond not running, trying to start</h3>";     print $fh "<h3>lond not running, trying to start</h3>";
    system("$perlvar{'lonDaemons'}/lond");     system("$perlvar{'lonDaemons'}/lond");
Line 383  print $fh "</pre>"; Line 462  print $fh "</pre>";
   
 my $loncfile="$perlvar{'lonDaemons'}/logs/lonc.pid";  my $loncfile="$perlvar{'lonDaemons'}/logs/lonc.pid";
   
   $restartflag=1;
 if (-e $loncfile) {  if (-e $loncfile) {
    my $lfh=IO::File->new("$loncfile");     my $lfh=IO::File->new("$loncfile");
    my $loncpid=<$lfh>;     my $loncpid=<$lfh>;
Line 390  if (-e $loncfile) { Line 470  if (-e $loncfile) {
    if (kill 0 => $loncpid) {     if (kill 0 => $loncpid) {
       print $fh "<h3>lonc at pid $loncpid responding, sending USR1</h3>";        print $fh "<h3>lonc at pid $loncpid responding, sending USR1</h3>";
       kill USR1 => $loncpid;        kill USR1 => $loncpid;
         $restartflag=0;
    } else {     } else {
       $errors++; $errors++;        $errors++;
       print $fh "<h3>lonc at pid $loncpid not responding</h3>";        print $fh "<h3>lonc at pid $loncpid not responding</h3>";
         # Intelligently handle this.
         # Possibility #1: there is no process
         # Solution: remove .pid file and restart
         if (getpgrp($loncpid)==-1) {
     unlink($loncfile);
     $restartflag=1;
         }
         else {
         # Possibility #2: there is a live process that is not responding
         #                 for an unknown reason
         # Solution: kill parent and children processes, remove .pid and restart
     `killall -9 lonc`;
     unlink($loncfile);
     $restartflag=1;
         }
         print $fh 
     "<h3>Deciding to clean up stale .pid file and restart lonc</h3>";
    }     }
 } else {  } 
   if ($restartflag==1) {
    $errors++;     $errors++;
    print $fh "<h3>lonc not running, trying to start</h3>";     print $fh "<h3>lonc not running, trying to start</h3>";
    system("$perlvar{'lonDaemons'}/lonc");     system("$perlvar{'lonDaemons'}/lonc");
Line 457  while ($line=<DFH>) { Line 556  while ($line=<DFH>) {
 };  };
 close (DFH);  close (DFH);
 }  }
 print $fh "</pre><h3>Perm Log</h3>";  print $fh "</pre><h3>Perm Log</h3><pre>";
   
 if (-e "$perlvar{'lonDaemons'}/logs/lonnet.perm.log") {  if (-e "$perlvar{'lonDaemons'}/logs/lonnet.perm.log") {
     open(DFH,"tail -n10 $perlvar{'lonDaemons'}/logs/lonnet.perm.log|");      open(DFH,"tail -n10 $perlvar{'lonDaemons'}/logs/lonnet.perm.log|");

Removed from v.1.6  
changed lines
  Added in v.1.13


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.