--- loncom/loncron 2004/05/11 21:14:23 1.50
+++ loncom/loncron 2005/02/14 00:29:48 1.57
@@ -2,7 +2,7 @@
# Housekeeping program, started by cron, loncontrol and loncron.pl
#
-# $Id: loncron,v 1.50 2004/05/11 21:14:23 albertel Exp $
+# $Id: loncron,v 1.57 2005/02/14 00:29:48 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -83,7 +83,15 @@ sub start_daemon {
$progname='loncnew';
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,"
Rotating error logs ...
");
+ 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;
if (-e $pidfile) {
&log($fh,"Seems like it started ...
");
@@ -106,7 +114,7 @@ sub checkon_daemon {
my ($fh,$daemon,$maxsize,$sendusr1,$args)=@_;
&log($fh,'
'.$daemon.'
Log
');
- printf("%-10s ",$daemon);
+ printf("%-15s ",$daemon);
if (-e "$perlvar{'lonDaemons'}/logs/$daemon.log"){
open (DFH,"tail -n25 $perlvar{'lonDaemons'}/logs/$daemon.log|");
while (my $line=) {
@@ -144,11 +152,13 @@ sub checkon_daemon {
if ($restartflag==1) {
$simplestatus{$daemon}='off';
$errors++;
+ my $kadaemon=$daemon;
+ if ($kadaemon eq 'lonmemcached') { $kadaemon='memcached'; }
&log($fh,'
Killall '.$daemon.': '.
- `killall $daemon 2>&1`.' - ');
+ `killall $kadaemon 2>&1`.' - ');
sleep 2;
&log($fh,unlink($pidfile).' - '.
- `killall -9 $daemon 2>&1`.
+ `killall -9 $kadaemon 2>&1`.
'
');
&log($fh,"$daemon not running, trying to start
");
@@ -252,7 +262,7 @@ sub log_machine_info {
&log($fh,"");
my $psproc=0;
- open (PSH,"ps -aux --cols 140 |");
+ open (PSH,"ps aux --cols 140 |");
while (my $line=) {
&log($fh,&encode_entities($line,'<>&"'));
$psproc++;
@@ -455,7 +465,7 @@ sub test_connections {
foreach my $tryserver (sort(keys(%{$hostname}))) {
print(".");
my $result;
- my $answer=reply("pong",$tryserver);
+ my $answer=reply("ping",$tryserver);
if ($answer eq "$tryserver:$perlvar{'lonHostID'}") {
$result="ok";
$good++;
@@ -546,11 +556,15 @@ sub log_simplestatus {
sub send_mail {
print "sending mail\n";
my $emailto="$perlvar{'lonAdmEMail'}";
- if ($totalcount>1000) {
+ if ($totalcount>2500) {
$emailto.=",$perlvar{'lonSysEMail'}";
}
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 {
@@ -621,8 +635,9 @@ sub main () {
my (%hostname,%hostdom,%hostrole,%spareid);
while (my $configline=<$config>) {
next if ($configline =~ /^(\#|\s*\$)/);
- my ($id,$domain,$role,$name,$ip,$domdescr)=split(/:/,$configline);
- if ($id && $domain && $role && $name && $ip) {
+ my ($id,$domain,$role,$name)=split(/:/,$configline);
+ if ($id && $domain && $role && $name) {
+ $name=~s/\s//g;
$hostname{$id}=$name;
$hostdom{$id}=$domain;
$hostrole{$id}=$role;
@@ -665,6 +680,7 @@ sub main () {
if ($oldlonc) { $args = ''; }
&checkon_daemon($fh,'lonc',40000,1,$args);
&checkon_daemon($fh,'lonhttpd',40000);
+ &checkon_daemon($fh,'lonmemcached',40000);
}
if (!$justcheckdaemons) {
&test_connections($fh,\%hostname);