Diff for /loncom/loncron between versions 1.49 and 1.55

version 1.49, 2004/05/11 21:08:55 version 1.55, 2005/01/20 16:27:40
Line 77  ENDERROUT Line 77  ENDERROUT
 }  }
   
 sub start_daemon {  sub start_daemon {
     my ($fh,$daemon,$pidfile) = @_;      my ($fh,$daemon,$pidfile,$args) = @_;
     my $progname=$daemon;      my $progname=$daemon;
     if ($daemon eq 'lonc' && $ARGV[0] eq 'new') {      if ($daemon eq 'lonc' && $args eq 'new') {
  $progname='loncnew';    $progname='loncnew'; 
  print "new ";   print "new ";
     }      }
     system("$perlvar{'lonDaemons'}/$progname 2>>$perlvar{'lonDaemons'}/logs/${daemon}_errors");      my $error_fname="$perlvar{'lonDaemons'}/logs/${daemon}_errors";
       my $size=(stat($error_fname))[7];
       if ($size>40000) {
    &log($fh,"<p>Rotating error logs ...</p>");
    rename("$error_fname.2","$error_fname.3");
    rename("$error_fname.1","$error_fname.2");
    rename("$error_fname","$error_fname.1");
       }
       system("$perlvar{'lonDaemons'}/$progname 2>$perlvar{'lonDaemons'}/logs/${daemon}_errors");
     sleep 2;      sleep 2;
     if (-e $pidfile) {      if (-e $pidfile) {
  &log($fh,"<p>Seems like it started ...</p>");   &log($fh,"<p>Seems like it started ...</p>");
Line 103  sub start_daemon { Line 111  sub start_daemon {
 }  }
   
 sub checkon_daemon {  sub checkon_daemon {
     my ($fh,$daemon,$maxsize,$sendusr1)=@_;      my ($fh,$daemon,$maxsize,$sendusr1,$args)=@_;
   
     &log($fh,'<hr /><a name="'.$daemon.'" /><h2>'.$daemon.'</h2><h3>Log</h3><p style="white-space: pre;"><tt>');      &log($fh,'<hr /><a name="'.$daemon.'" /><h2>'.$daemon.'</h2><h3>Log</h3><p style="white-space: pre;"><tt>');
     printf("%-10s ",$daemon);      printf("%-10s ",$daemon);
Line 152  sub checkon_daemon { Line 160  sub checkon_daemon {
     '</font><br>');      '</font><br>');
  &log($fh,"<h3>$daemon not running, trying to start</h3>");   &log($fh,"<h3>$daemon not running, trying to start</h3>");
   
  if (&start_daemon($fh,$daemon,$pidfile)) {   if (&start_daemon($fh,$daemon,$pidfile,$args)) {
     &log($fh,"<h3>$daemon at pid $daemonpid responding</h3>");      &log($fh,"<h3>$daemon at pid $daemonpid responding</h3>");
     $simplestatus{$daemon}='restarted';      $simplestatus{$daemon}='restarted';
     print "started\n";      print "started\n";
Line 161  sub checkon_daemon { Line 169  sub checkon_daemon {
     &log($fh,"<h3>$daemon at pid $daemonpid not responding</h3>");      &log($fh,"<h3>$daemon at pid $daemonpid not responding</h3>");
     &log($fh,"<p>Give it one more try ...</p>");      &log($fh,"<p>Give it one more try ...</p>");
     print " ";      print " ";
     if (&start_daemon($fh,$daemon,$pidfile)) {      if (&start_daemon($fh,$daemon,$pidfile,$args)) {
  &log($fh,"<h3>$daemon at pid $daemonpid responding</h3>");   &log($fh,"<h3>$daemon at pid $daemonpid responding</h3>");
  $simplestatus{$daemon}='restarted';   $simplestatus{$daemon}='restarted';
  print "started\n";   print "started\n";
Line 252  sub log_machine_info { Line 260  sub log_machine_info {
     &log($fh,"<pre>");      &log($fh,"<pre>");
     my $psproc=0;      my $psproc=0;
   
     open (PSH,"ps -aux --cols 140 |");      open (PSH,"ps aux --cols 140 |");
     while (my $line=<PSH>) {       while (my $line=<PSH>) { 
  &log($fh,&encode_entities($line,'<>&"'));    &log($fh,&encode_entities($line,'<>&"')); 
  $psproc++;   $psproc++;
Line 455  sub test_connections { Line 463  sub test_connections {
     foreach my $tryserver (sort(keys(%{$hostname}))) {      foreach my $tryserver (sort(keys(%{$hostname}))) {
  print(".");   print(".");
  my $result;   my $result;
  my $answer=reply("pong",$tryserver);   my $answer=reply("ping",$tryserver);
  if ($answer eq "$tryserver:$perlvar{'lonHostID'}") {   if ($answer eq "$tryserver:$perlvar{'lonHostID'}") {
     $result="<b>ok</b>";      $result="<b>ok</b>";
     $good++;      $good++;
Line 465  sub test_connections { Line 473  sub test_connections {
     if ($answer eq 'con_lost') {      if ($answer eq 'con_lost') {
  $bad++;   $bad++;
  $warnings++;   $warnings++;
       } else {
    $good++; #self connection
     }      }
  }   }
  if ($answer =~ /con_lost/) { print(" $tryserver down\n"); }   if ($answer =~ /con_lost/) { print(" $tryserver down\n"); }
Line 544  sub log_simplestatus { Line 554  sub log_simplestatus {
 sub send_mail {  sub send_mail {
     print "sending mail\n";      print "sending mail\n";
     my $emailto="$perlvar{'lonAdmEMail'}";      my $emailto="$perlvar{'lonAdmEMail'}";
     if ($totalcount>1000) {      if ($totalcount>2500) {
  $emailto.=",$perlvar{'lonSysEMail'}";   $emailto.=",$perlvar{'lonSysEMail'}";
     }      }
     my $subj="LON: $perlvar{'lonHostID'} E:$errors W:$warnings N:$notices";       my $subj="LON: $perlvar{'lonHostID'} E:$errors W:$warnings N:$notices"; 
     system("metasend -b -t $emailto -s '$subj' -f $statusdir/index.html -m text/html");  
       my $result=system("metasend -b -t $emailto -s '$subj' -f $statusdir/index.html -m text/html >& /dev/null");
       if ($result != 0) {
    $result=system("mail -s '$subj' $emailto < $statusdir/index.html");
       }
 }  }
   
 sub usage {  sub usage {
Line 659  sub main () { Line 673  sub main () {
     if (!$justcheckconnections) {      if (!$justcheckconnections) {
  &checkon_daemon($fh,'lonsql',200000);   &checkon_daemon($fh,'lonsql',200000);
  &checkon_daemon($fh,'lond',40000,1);   &checkon_daemon($fh,'lond',40000,1);
  &checkon_daemon($fh,'lonc',40000,1);   my $args='new';
    if ($oldlonc) { $args = ''; }
    &checkon_daemon($fh,'lonc',40000,1,$args);
  &checkon_daemon($fh,'lonhttpd',40000);   &checkon_daemon($fh,'lonhttpd',40000);
     }      }
     if (!$justcheckdaemons) {      if (!$justcheckdaemons) {

Removed from v.1.49  
changed lines
  Added in v.1.55


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>