Diff for /loncom/loncron between versions 1.7 and 1.16

version 1.7, 2000/12/06 21:11:35 version 1.16, 2001/02/12 18:53:32
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
   # 02/12/2001 Scott Harrison
   
 use IO::File;  use IO::File;
 use IO::Socket;  use IO::Socket;
Line 43  ENDERROUT Line 46  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 58  ENDERROUT
     }      }
 }  }
   
   # --------------------------------------- Make sure that LON-CAPA is configured
   # I only test for one thing here (lonHostID).  This is just a safeguard.
   if ('{[[[[lonHostID]]]]}' eq $perlvar{'lonHostID'}) {
      print("Unconfigured machine.\n");
      $emailto=$perlvar{'lonSysEMail'};
      $hostname=`/bin/hostname`;
      chop $hostname;
      $hostname=~s/[^\w\.]//g; # make sure is safe to pass through shell
      $subj="LON: Unconfigured machine $hostname";
      system("echo 'Unconfigured machine $hostname.' |\
    mailto $emailto -s '$subj' > /dev/null");
       exit 1;
   }
   
   # ----------------------------- 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");
      $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 137  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 212  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 274  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 235  if ($perlvar{'lonRole'} eq "library" && Line 309  if ($perlvar{'lonRole'} eq "library" &&
     } else {      } else {
  $errors++;   $errors++;
  print $fh "<h3>lonsql not running, trying to start</h3>";   print $fh "<h3>lonsql not running, trying to start</h3>";
  system("$perlvar{'lonDaemons'}/lonsql");   system(
    "$perlvar{'lonDaemons'}/lonsql 2>>$perlvar{'lonDaemons'}/logs/lonsql_errors");
  sleep 120;   sleep 120;
  if (-e $lonsqlfile) {   if (-e $lonsqlfile) {
     print $fh "Seems like it started ...<p>";      print $fh "Seems like it started ...<p>";
Line 249  if ($perlvar{'lonRole'} eq "library" && Line 324  if ($perlvar{'lonRole'} eq "library" &&
  $errors++; $errors++;   $errors++; $errors++;
  print $fh "<h3>lonsql at pid $lonsqlpid not responding</h3>";   print $fh "<h3>lonsql at pid $lonsqlpid not responding</h3>";
  print $fh "Give it one more try ...<p>";   print $fh "Give it one more try ...<p>";
  system("$perlvar{'lonDaemons'}/lonsql");   system(
    "$perlvar{'lonDaemons'}/lonsql 2>>$perlvar{'lonDaemons'}/logs/lonsql_errors");
  sleep 120;   sleep 120;
     }      }
  } else {   } else {
Line 312  if (-e $londfile) { Line 388  if (-e $londfile) {
       print $fh "<h3>lond at pid $londpid responding</h3>";        print $fh "<h3>lond at pid $londpid responding</h3>";
       $restartflag=0;        $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.        # Intelligently handle this.
       # Possibility #1: there is no process        # Possibility #1: there is no process
Line 321  if (-e $londfile) { Line 397  if (-e $londfile) {
   unlink($londfile);    unlink($londfile);
   $restartflag=1;    $restartflag=1;
       }        }
       # Possibility #2: there is a zombie process        else {
       # Possibility #3: there is a live process that is not responding        # Possibility #2: there is a live process that is not responding
       #                 for an unknown reason        #                 for an unknown reason
       # Solution: kill process, remove .pid and restart        # Solution: kill parent and children processes, remove .pid and restart
       kill 2 => $londpid;    `killall -9 lond`;
       unlink($londfile);    unlink($londfile);
       $restartflag=1;    $restartflag=1;
       print $fh "<h3>Deciding to clean up stale .pid file and restart lond</h3>";        }
         print $fh 
     "<h3>Deciding to clean up stale .pid file and restart lond</h3>";
    }     }
 }   } 
 if ($restartflag==1) {  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 2>>$perlvar{'lonDaemons'}/logs/lond_errors");
    sleep 120;     sleep 120;
    if (-e $londfile) {     if (-e $londfile) {
        print $fh "Seems like it started ...<p>";         print $fh "Seems like it started ...<p>";
Line 348  if ($restartflag==1) { Line 427  if ($restartflag==1) {
           $errors++; $errors++;            $errors++; $errors++;
           print $fh "<h3>lond at pid $londpid not responding</h3>";            print $fh "<h3>lond at pid $londpid not responding</h3>";
           print $fh "Give it one more try ...<p>";            print $fh "Give it one more try ...<p>";
           system("$perlvar{'lonDaemons'}/lond");    system(
    "$perlvar{'lonDaemons'}/lond 2>>$perlvar{'lonDaemons'}/logs/lond_errors");
           sleep 120;            sleep 120;
        }         }
    } else {     } else {
Line 411  if (-e $loncfile) { Line 491  if (-e $loncfile) {
       kill USR1 => $loncpid;        kill USR1 => $loncpid;
       $restartflag=0;        $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.        # Intelligently handle this.
       # Possibility #1: there is no process        # Possibility #1: there is no process
Line 420  if (-e $loncfile) { Line 500  if (-e $loncfile) {
   unlink($loncfile);    unlink($loncfile);
   $restartflag=1;    $restartflag=1;
       }        }
       # Possibility #2: there is a zombie process        else {
       # Possibility #3: there is a live process that is not responding        # Possibility #2: there is a live process that is not responding
       #                 for an unknown reason        #                 for an unknown reason
       # Solution: kill process, remove .pid and restart        # Solution: kill parent and children processes, remove .pid and restart
       kill 2 => $loncpid;    `killall -9 lonc`;
       unlink($loncfile);    unlink($loncfile);
       $restartflag=1;    $restartflag=1;
       print $fh "<h3>Deciding to clean up stale .pid file and restart lonc</h3>";        }
         print $fh 
     "<h3>Deciding to clean up stale .pid file and restart lonc</h3>";
    }     }
 }   } 
 if ($restartflag==1) {  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'}/lond 2>>$perlvar{'lonDaemons'}/logs/lonc_errors");
    sleep 120;     sleep 120;
    if (-e $loncfile) {     if (-e $loncfile) {
        print $fh "Seems like it started ...<p>";         print $fh "Seems like it started ...<p>";
Line 447  if ($restartflag==1) { Line 530  if ($restartflag==1) {
           $errors++; $errors++;            $errors++; $errors++;
           print $fh "<h3>lonc at pid $loncpid not responding</h3>";            print $fh "<h3>lonc at pid $loncpid not responding</h3>";
           print $fh "Give it one more try ...<p>";            print $fh "Give it one more try ...<p>";
           system("$perlvar{'lonDaemons'}/lonc");     system(
    "$perlvar{'lonDaemons'}/lond 2>>$perlvar{'lonDaemons'}/logs/lonc_errors");
           sleep 120;            sleep 120;
        }         }
    } else {     } else {
Line 493  while ($line=<DFH>) { Line 577  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.7  
changed lines
  Added in v.1.16


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.