Diff for /loncom/loncron between versions 1.14 and 1.27

version 1.14, 2001/01/10 17:49:56 version 1.27, 2002/05/17 16:19:24
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/6/2000,12/8 Scott Harrison
 # 12/23 Gerd Kortemeyer  # 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;
   
   use lib '/home/httpd/lib/perl/';
   use LONCAPA::Configuration;
   
 use IO::File;  use IO::File;
 use IO::Socket;  use IO::Socket;
Line 45  ENDERROUT Line 55  ENDERROUT
   
 # ================================================================ Main Program  # ================================================================ Main Program
   
 # ------------------------------------------------------------ Read access.conf  # --------------------------------- Read loncapa_apache.conf and loncapa.conf
 {  my $perlvarref=LONCAPA::Configuration::read_conf('loncapa_apache.conf',
     my $config=IO::File->new("/etc/httpd/conf/access.conf");                                                   'loncapa.conf');
   my %perlvar=%{$perlvarref};
     while (my $configline=<$config>) {  undef $perlvarref;
         if ($configline =~ /PerlSetVar/) {  delete $perlvar{'lonReceipt'}; # remove since sensitive and not needed
    my ($dummy,$varname,$varvalue)=split(/\s+/,$configline);  delete $perlvar{'lonSqlAccess'}; # remove since sensitive and not needed
            $perlvar{$varname}=$varvalue;  
         }  
     }  
 }  
   
 # --------------------------------------- Make sure that LON-CAPA is configured  # --------------------------------------- Make sure that LON-CAPA is configured
 # I only test for one thing here (lonHostID).  This is just a safeguard.  # I only test for one thing here (lonHostID).  This is just a safeguard.
 if ('{[[[[lonHostID]]]]}' eq $perlvar{'lonHostID'}) {  if ('{[[[[lonHostID]]]]}' eq $perlvar{'lonHostID'}) {
    print("User ID mismatch.  This program must be run as user 'www'\n");     print("Unconfigured machine.\n");
    $emailto=$perlvar{'lonSysEMail'};     $emailto=$perlvar{'lonSysEMail'};
    $hostname=`/bin/hostname`;     $hostname=`/bin/hostname`;
    chop $hostname;     chop $hostname;
Line 200  while ($line=<DFH>) { Line 206  while ($line=<DFH>) {
    $usage=$parts[4];     $usage=$parts[4];
    $usage=~s/\W//g;     $usage=~s/\W//g;
    if ($usage>90) {      if ($usage>90) { 
       $warnings++;         $warnings++;
         $notices++; 
    } elsif ($usage>80) {     } elsif ($usage>80) {
       $warnings++;        $warnings++;
    } elsif ($usage>60) {     } elsif ($usage>60) {
Line 210  while ($line=<DFH>) { Line 217  while ($line=<DFH>) {
 }  }
 close (DFH);  close (DFH);
 print $fh "</pre>";  print $fh "</pre>";
   
   
   print $fh "<h3>ps</h3>";
   print $fh "<pre>";
   $psproc=0;
   
   open (PSH,"ps -aux|");
   while ($line=<PSH>) { 
      print $fh "$line"; 
      $psproc++;
   }
   close (PSH);
   print $fh "</pre>";
   
   if ($psproc>200) { $notices++; }
   if ($psproc>250) { $notices++; }
   
 &errout($fh);  &errout($fh);
   
 # --------------------------------------------------------------- clean out tmp  # --------------------------------------------------------------- clean out tmp
Line 257  print $fh "<h3>$active open session(s)</ Line 281  print $fh "<h3>$active open session(s)</
   
 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>';
   
 open (DFH,"tail -n40 /etc/httpd/logs/access_log|");  open (DFH,"tail -n25 /etc/httpd/logs/access_log|");
 while ($line=<DFH>) { print $fh "$line" };  while ($line=<DFH>) { print $fh "$line" };
 close (DFH);  close (DFH);
   
 print $fh "</pre><h3>Error Log</h3><pre>";  print $fh "</pre><h3>Error Log</h3><pre>";
   
 open (DFH,"tail -n50 /etc/httpd/logs/error_log|");  open (DFH,"tail -n25 /etc/httpd/logs/error_log|");
 while ($line=<DFH>) {   while ($line=<DFH>) { 
    print $fh "$line";     print $fh "$line";
    if ($line=~/\[error\]/) { $notices++; }      if ($line=~/\[error\]/) { $notices++; } 
Line 274  print $fh "</pre>"; Line 298  print $fh "</pre>";
   
   
 # ---------------------------------------------------------------------- lonsql  # ---------------------------------------------------------------------- lonsql
 #  
 # Do not run for now  my $restartflag=1;
 #  if ($perlvar{'lonRole'} eq "library") {
 if ($perlvar{'lonRole'} eq "library" && 1==0) {  
   
     print $fh '<hr><a name="lonsql"><h2>lonsql</h2><h3>Log</h3><pre>';      print $fh '<hr><a name="lonsql"><h2>lonsql</h2><h3>Log</h3><pre>';
           print "lonsql\n";
     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|");
  while ($line=<DFH>) {    while ($line=<DFH>) { 
Line 294  if ($perlvar{'lonRole'} eq "library" && Line 317  if ($perlvar{'lonRole'} eq "library" &&
     print $fh "</pre>";      print $fh "</pre>";
           
     my $lonsqlfile="$perlvar{'lonDaemons'}/logs/lonsql.pid";      my $lonsqlfile="$perlvar{'lonDaemons'}/logs/lonsql.pid";
        
       $restartflag=1;
      
     if (-e $lonsqlfile) {      if (-e $lonsqlfile) {
  my $lfh=IO::File->new("$lonsqlfile");   my $lfh=IO::File->new("$lonsqlfile");
  my $lonsqlpid=<$lfh>;   my $lonsqlpid=<$lfh>;
  chomp($lonsqlpid);   chomp($lonsqlpid);
  if (kill 0 => $lonsqlpid) {   if (kill 0 => $lonsqlpid) {
     print $fh "<h3>lonsql at pid $lonsqlpid responding</h3>";      print $fh "<h3>lonsql at pid $lonsqlpid responding</h3>";
       $restartflag=0;
  } else {   } else {
     $errors++; $errors++;      $errors++; $errors++;
     print $fh "<h3>lonsql at pid $lonsqlpid not responding</h3>";      print $fh "<h3>lonsql at pid $lonsqlpid not responding</h3>";
    $restartflag=1;
    print $fh 
       "<h3>Decided to clean up stale .pid file and restart lonsql</h3>";
  }   }
     } else {      }
       if ($restartflag==1) {
  $errors++;   $errors++;
            print $fh '<br><font color="red">Killall lonsql: '.
                       system('killall lonsql').' - ';
                       sleep 60;
                       print $fh unlink($lonsqlfile).' - '.
                                 system('killall -9 lonsql').
                       '</font><br>';
  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(
  sleep 120;   "$perlvar{'lonDaemons'}/lonsql 2>>$perlvar{'lonDaemons'}/logs/lonsql_errors");
    sleep 10;
  if (-e $lonsqlfile) {   if (-e $lonsqlfile) {
     print $fh "Seems like it started ...<p>";      print $fh "Seems like it started ...<p>";
     my $lfh=IO::File->new("$lonsqlfile");      my $lfh=IO::File->new("$lonsqlfile");
Line 322  if ($perlvar{'lonRole'} eq "library" && Line 359  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(
  sleep 120;   "$perlvar{'lonDaemons'}/lonsql 2>>$perlvar{'lonDaemons'}/logs/lonsql_errors");
    sleep 10;
     }      }
  } else {   } else {
     print $fh "Seems like that did not work!<p>";      print $fh "Seems like that did not work!<p>";
Line 361  if ($perlvar{'lonRole'} eq "library" && Line 399  if ($perlvar{'lonRole'} eq "library" &&
 # ------------------------------------------------------------------------ lond  # ------------------------------------------------------------------------ lond
   
 print $fh '<hr><a name="lond"><h2>lond</h2><h3>Log</h3><pre>';  print $fh '<hr><a name="lond"><h2>lond</h2><h3>Log</h3><pre>';
   print "lond\n";
   
 if (-e "$perlvar{'lonDaemons'}/logs/lond.log"){  if (-e "$perlvar{'lonDaemons'}/logs/lond.log"){
 open (DFH,"tail -n100 $perlvar{'lonDaemons'}/logs/lond.log|");  open (DFH,"tail -n25 $perlvar{'lonDaemons'}/logs/lond.log|");
 while ($line=<DFH>) {   while ($line=<DFH>) { 
    print $fh "$line";     print $fh "$line";
    if ($line=~/INFO/) { $notices++; }     if ($line=~/INFO/) { $notices++; }
Line 376  print $fh "</pre>"; Line 415  print $fh "</pre>";
   
 my $londfile="$perlvar{'lonDaemons'}/logs/lond.pid";  my $londfile="$perlvar{'lonDaemons'}/logs/lond.pid";
   
 my $restartflag=1;  $restartflag=1;
 if (-e $londfile) {      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, sending USR1</h3>";
         kill USR1 => $londpid;
       $restartflag=0;        $restartflag=0;
    } else {     } else {
       $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.        $restartflag=1;
       # 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         print $fh 
   "<h3>Deciding to clean up stale .pid file and restart lond</h3>";    "<h3>Decided to clean up stale .pid file and restart lond</h3>";
    }     }
 }   } 
 if ($restartflag==1) {  if ($restartflag==1) {
    $errors++;     $errors++;
     print $fh '<br><font color="red">Killall lond: '.
                       system('killall lond').' - ';
             sleep 60;
             print $fh unlink($londfile).' - '.system('killall -9 lond').
                       '</font><br>';
    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(
    sleep 120;       "$perlvar{'lonDaemons'}/lond 2>>$perlvar{'lonDaemons'}/logs/lond_errors");
      sleep 10;
    if (-e $londfile) {     if (-e $londfile) {
        print $fh "Seems like it started ...<p>";         print $fh "Seems like it started ...<p>";
        my $lfh=IO::File->new("$londfile");         my $lfh=IO::File->new("$londfile");
Line 423  if ($restartflag==1) { Line 455  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(
           sleep 120;   "$perlvar{'lonDaemons'}/lond 2>>$perlvar{'lonDaemons'}/logs/lond_errors");
             sleep 10;
        }         }
    } else {     } else {
        print $fh "Seems like that did not work!<p>";         print $fh "Seems like that did not work!<p>";
Line 461  if ($size>40000) { Line 494  if ($size>40000) {
 # ------------------------------------------------------------------------ lonc  # ------------------------------------------------------------------------ lonc
   
 print $fh '<hr><a name="lonc"><h2>lonc</h2><h3>Log</h3><pre>';  print $fh '<hr><a name="lonc"><h2>lonc</h2><h3>Log</h3><pre>';
   print "lonc\n";
   
 if (-e "$perlvar{'lonDaemons'}/logs/lonc.log"){  if (-e "$perlvar{'lonDaemons'}/logs/lonc.log"){
 open (DFH,"tail -n100 $perlvar{'lonDaemons'}/logs/lonc.log|");  open (DFH,"tail -n25 $perlvar{'lonDaemons'}/logs/lonc.log|");
 while ($line=<DFH>) {   while ($line=<DFH>) { 
    print $fh "$line";     print $fh "$line";
    if ($line=~/INFO/) { $notices++; }     if ($line=~/INFO/) { $notices++; }
Line 488  if (-e $loncfile) { Line 522  if (-e $loncfile) {
    } else {     } else {
       $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        # Solution: kill parent and children processes, remove .pid and restart
   `killall -9 lonc`;  
   unlink($loncfile);  
   $restartflag=1;    $restartflag=1;
       }  
       print $fh         print $fh 
   "<h3>Deciding to clean up stale .pid file and restart lonc</h3>";    "<h3>Decided to clean up stale .pid file and restart lonc</h3>";
    }     }
 }   } 
 if ($restartflag==1) {  if ($restartflag==1) {
    $errors++;     $errors++;
     print $fh '<br><font color="red">Killall lonc: '.
               system('killall lonc').' - ';
             sleep 60;
             print $fh unlink($loncfile).' - '.system('killall -9 lonc').
                       '</font><br>';
    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(
    sleep 120;   "$perlvar{'lonDaemons'}/lonc 2>>$perlvar{'lonDaemons'}/logs/lonc_errors");
      sleep 10;
    if (-e $loncfile) {     if (-e $loncfile) {
        print $fh "Seems like it started ...<p>";         print $fh "Seems like it started ...<p>";
        my $lfh=IO::File->new("$loncfile");         my $lfh=IO::File->new("$loncfile");
Line 524  if ($restartflag==1) { Line 551  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(
           sleep 120;   "$perlvar{'lonDaemons'}/lonc 2>>$perlvar{'lonDaemons'}/logs/lonc_errors");
             sleep 10;
        }         }
    } else {     } else {
        print $fh "Seems like that did not work!<p>";         print $fh "Seems like that did not work!<p>";
Line 563  if ($size>40000) { Line 591  if ($size>40000) {
 # ---------------------------------------------------------------------- lonnet  # ---------------------------------------------------------------------- lonnet
   
 print $fh '<hr><a name="lonnet"><h2>lonnet</h2><h3>Temp Log</h3><pre>';  print $fh '<hr><a name="lonnet"><h2>lonnet</h2><h3>Temp Log</h3><pre>';
   print "lonnet\n";
 if (-e "$perlvar{'lonDaemons'}/logs/lonnet.log"){  if (-e "$perlvar{'lonDaemons'}/logs/lonnet.log"){
 open (DFH,"tail -n50 $perlvar{'lonDaemons'}/logs/lonnet.log|");  open (DFH,"tail -n50 $perlvar{'lonDaemons'}/logs/lonnet.log|");
 while ($line=<DFH>) {   while ($line=<DFH>) { 
Line 620  print $fh "</table>"; Line 649  print $fh "</table>";
 # ------------------------------------------------------------ Delayed messages  # ------------------------------------------------------------ Delayed messages
   
 print $fh '<hr><a name="delayed"><h2>Delayed Messages</h2>';  print $fh '<hr><a name="delayed"><h2>Delayed Messages</h2>';
   print "buffers\n";
   
 print $fh '<h3>Scanning Permanent Log</h3>';  print $fh '<h3>Scanning Permanent Log</h3>';
   
Line 656  print $fh "<h1>Total Error Count: $total Line 686  print $fh "<h1>Total Error Count: $total
 $now=time;  $now=time;
 $date=localtime($now);  $date=localtime($now);
 print $fh "<hr>$date ($now)</body></html>\n";  print $fh "<hr>$date ($now)</body></html>\n";
   print "writing done\n";
 }  }
   
 rename ("$statusdir/newstatus.html","$statusdir/index.html");  rename ("$statusdir/newstatus.html","$statusdir/index.html");
   
 if ($totalcount>200) {  if ($totalcount>200) {
      print "mailing\n";
    $emailto="$perlvar{'lonAdmEMail'},$perlvar{'lonSysEMail'}";     $emailto="$perlvar{'lonAdmEMail'},$perlvar{'lonSysEMail'}";
    $subj="LON: $perlvar{'lonHostID'} E:$errors W:$warnings N:$notices";      $subj="LON: $perlvar{'lonHostID'} E:$errors W:$warnings N:$notices"; 
    system(     system(

Removed from v.1.14  
changed lines
  Added in v.1.27


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.