Diff for /loncom/loncron between versions 1.61 and 1.66

version 1.61, 2005/10/06 20:35:50 version 1.66, 2006/02/06 09:08:56
Line 45  my $statusdir="/home/httpd/html/lon-stat Line 45  my $statusdir="/home/httpd/html/lon-stat
   
 # -------------------------------------------------- Non-critical communication  # -------------------------------------------------- Non-critical communication
 sub reply {  sub reply {
     my ($cmd,$server)=@_;      my ($cmd,$server,$hostname)=@_;
     my $peerfile="$perlvar{'lonSockDir'}/$server";      my $peerfile="$perlvar{'lonSockDir'}/".$hostname->{$server};
     my $client=IO::Socket::UNIX->new(Peer    =>"$peerfile",      my $client=IO::Socket::UNIX->new(Peer    =>"$peerfile",
                                      Type    => SOCK_STREAM,                                       Type    => SOCK_STREAM,
                                      Timeout => 10)                                       Timeout => 10)
        or return "con_lost";         or return "con_lost";
     print $client "$cmd\n";      print $client "sethost:$server:$cmd\n";
     my $answer=<$client>;      my $answer=<$client>;
     chomp($answer);      chomp($answer);
     if (!$answer) { $answer="con_lost"; }      if (!$answer) { $answer="con_lost"; }
Line 98  sub start_daemon { Line 98  sub start_daemon {
  my $lfh=IO::File->new("$pidfile");   my $lfh=IO::File->new("$pidfile");
  my $daemonpid=<$lfh>;   my $daemonpid=<$lfh>;
  chomp($daemonpid);   chomp($daemonpid);
  if (kill 0 => $daemonpid) {   if ($daemonpid =~ /^\d+$/ && kill 0 => $daemonpid) {
     return 1;      return 1;
  } else {   } else {
     return 0;      return 0;
Line 112  sub start_daemon { Line 112  sub start_daemon {
 sub checkon_daemon {  sub checkon_daemon {
     my ($fh,$daemon,$maxsize,$send,$args)=@_;      my ($fh,$daemon,$maxsize,$send,$args)=@_;
   
       my $result;
     &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("%-15s ",$daemon);      printf("%-15s ",$daemon);
     if (-e "$perlvar{'lonDaemons'}/logs/$daemon.log"){      if (-e "$perlvar{'lonDaemons'}/logs/$daemon.log"){
Line 134  sub checkon_daemon { Line 135  sub checkon_daemon {
  my $lfh=IO::File->new("$pidfile");   my $lfh=IO::File->new("$pidfile");
  $daemonpid=<$lfh>;   $daemonpid=<$lfh>;
  chomp($daemonpid);   chomp($daemonpid);
  if (kill 0 => $daemonpid) {   if ($daemonpid =~ /^\d+$/ && kill 0 => $daemonpid) {
     &log($fh,"<h3>$daemon at pid $daemonpid responding");      &log($fh,"<h3>$daemon at pid $daemonpid responding");
     if ($send) { &log($fh,", sending $send"); }      if ($send) { &log($fh,", sending $send"); }
     &log($fh,"</h3>");      &log($fh,"</h3>");
Line 142  sub checkon_daemon { Line 143  sub checkon_daemon {
     if ($send eq 'USR2') { kill USR2 => $daemonpid; }      if ($send eq 'USR2') { kill USR2 => $daemonpid; }
     $restartflag=0;      $restartflag=0;
     if ($send eq 'USR2') {      if ($send eq 'USR2') {
    $result = 'reloaded';
  print "reloaded\n";   print "reloaded\n";
     } else {      } else {
    $result = 'running';
  print "running\n";   print "running\n";
     }      }
  } else {   } else {
Line 169  sub checkon_daemon { Line 172  sub checkon_daemon {
  if (&start_daemon($fh,$daemon,$pidfile,$args)) {   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';
       $result = 'started';
     print "started\n";      print "started\n";
  } else {   } else {
     $errors++;      $errors++;
Line 178  sub checkon_daemon { Line 182  sub checkon_daemon {
     if (&start_daemon($fh,$daemon,$pidfile,$args)) {      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';
    $result = 'started';
  print "started\n";   print "started\n";
     } else {      } else {
    $result = 'failed';
  print " failed\n";   print " failed\n";
  $simplestatus{$daemon}='failed';   $simplestatus{$daemon}='failed';
  $errors++; $errors++;   $errors++; $errors++;
Line 216  sub checkon_daemon { Line 222  sub checkon_daemon {
     }      }
   
     &errout($fh);      &errout($fh);
       return $result;
 }  }
   
 # --------------------------------------------------------------------- Machine  # --------------------------------------------------------------------- Machine
Line 479  sub test_connections { Line 486  sub test_connections {
     foreach my $tryserver (sort(keys(%{$hostname}))) {      foreach my $tryserver (sort(keys(%{$hostname}))) {
  print(".");   print(".");
  my $result;   my $result;
  my $answer=reply("ping",$tryserver);   my $answer=reply("ping",$tryserver,$hostname);
  if ($answer eq "$tryserver:$perlvar{'lonHostID'}") {   if ($answer eq "$tryserver:$perlvar{'lonHostID'}") {
     $result="<b>ok</b>";      $result="<b>ok</b>";
     $good++;      $good++;
Line 695  sub main () { Line 702  sub main () {
     }      }
     if (!$justcheckconnections && !$justreload) {      if (!$justcheckconnections && !$justreload) {
  &checkon_daemon($fh,'lonsql',200000);   &checkon_daemon($fh,'lonsql',200000);
  &checkon_daemon($fh,'lond',40000,'USR1');   if ( &checkon_daemon($fh,'lond',40000,'USR1') eq 'running') {
       &checkon_daemon($fh,'lond',40000,'USR2');
    }
  my $args='new';   my $args='new';
  if ($oldlonc) { $args = ''; }   if ($oldlonc) { $args = ''; }
  &checkon_daemon($fh,'lonc',40000,'USR1',$args);   &checkon_daemon($fh,'lonc',40000,'USR2',$args);
  &checkon_daemon($fh,'lonhttpd',40000);   &checkon_daemon($fh,'lonhttpd',40000);
  &checkon_daemon($fh,'lonmemcached',40000);   &checkon_daemon($fh,'lonmemcached',40000);
     }      }
Line 708  sub main () { Line 717  sub main () {
  if ($oldlonc) { $args = ''; }   if ($oldlonc) { $args = ''; }
  &checkon_daemon($fh,'lonc',40000,'USR2',$args);   &checkon_daemon($fh,'lonc',40000,'USR2',$args);
     }      }
     if (!$justcheckdaemons && !$justreload) {      if ($justcheckconnections) {
  &test_connections($fh,\%hostname);   &test_connections($fh,\%hostname);
     }      }
     if (!$justcheckdaemons && !$justcheckconnections && !$justreload) {      if (!$justcheckdaemons && !$justcheckconnections && !$justreload) {

Removed from v.1.61  
changed lines
  Added in v.1.66


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