version 1.57, 2005/02/14 00:29:48
|
version 1.60, 2005/06/13 19:54:28
|
Line 92 sub start_daemon {
|
Line 92 sub start_daemon {
|
rename("$error_fname","$error_fname.1"); |
rename("$error_fname","$error_fname.1"); |
} |
} |
system("$perlvar{'lonDaemons'}/$progname 2>$perlvar{'lonDaemons'}/logs/${daemon}_errors"); |
system("$perlvar{'lonDaemons'}/$progname 2>$perlvar{'lonDaemons'}/logs/${daemon}_errors"); |
sleep 2; |
sleep 1; |
if (-e $pidfile) { |
if (-e $pidfile) { |
&log($fh,"<p>Seems like it started ...</p>"); |
&log($fh,"<p>Seems like it started ...</p>"); |
my $lfh=IO::File->new("$pidfile"); |
my $lfh=IO::File->new("$pidfile"); |
my $daemonpid=<$lfh>; |
my $daemonpid=<$lfh>; |
chomp($daemonpid); |
chomp($daemonpid); |
sleep 2; |
|
if (kill 0 => $daemonpid) { |
if (kill 0 => $daemonpid) { |
return 1; |
return 1; |
} else { |
} else { |
Line 111 sub start_daemon {
|
Line 110 sub start_daemon {
|
} |
} |
|
|
sub checkon_daemon { |
sub checkon_daemon { |
my ($fh,$daemon,$maxsize,$sendusr1,$args)=@_; |
my ($fh,$daemon,$maxsize,$send,$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("%-15s ",$daemon); |
printf("%-15s ",$daemon); |
Line 137 sub checkon_daemon {
|
Line 136 sub checkon_daemon {
|
chomp($daemonpid); |
chomp($daemonpid); |
if (kill 0 => $daemonpid) { |
if (kill 0 => $daemonpid) { |
&log($fh,"<h3>$daemon at pid $daemonpid responding"); |
&log($fh,"<h3>$daemon at pid $daemonpid responding"); |
if ($sendusr1) { &log($fh,", sending USR1"); } |
if ($send) { &log($fh,", sending $send"); } |
&log($fh,"</h3>"); |
&log($fh,"</h3>"); |
if ($sendusr1) { kill USR1 => $daemonpid; } |
if ($send eq 'USR1') { kill USR1 => $daemonpid; } |
|
if ($send eq 'USR2') { kill USR2 => $daemonpid; } |
$restartflag=0; |
$restartflag=0; |
print "running\n"; |
if ($send eq 'USR2') { |
|
print "reloaded\n"; |
|
} else { |
|
print "running\n"; |
|
} |
} else { |
} else { |
$errors++; |
$errors++; |
&log($fh,"<h3>$daemon at pid $daemonpid not responding</h3>"); |
&log($fh,"<h3>$daemon at pid $daemonpid not responding</h3>"); |
Line 156 sub checkon_daemon {
|
Line 160 sub checkon_daemon {
|
if ($kadaemon eq 'lonmemcached') { $kadaemon='memcached'; } |
if ($kadaemon eq 'lonmemcached') { $kadaemon='memcached'; } |
&log($fh,'<br><font color="red">Killall '.$daemon.': '. |
&log($fh,'<br><font color="red">Killall '.$daemon.': '. |
`killall $kadaemon 2>&1`.' - '); |
`killall $kadaemon 2>&1`.' - '); |
sleep 2; |
sleep 1; |
&log($fh,unlink($pidfile).' - '. |
&log($fh,unlink($pidfile).' - '. |
`killall -9 $kadaemon 2>&1`. |
`killall -9 $kadaemon 2>&1`. |
'</font><br>'); |
'</font><br>'); |
Line 561 sub send_mail {
|
Line 565 sub send_mail {
|
} |
} |
my $subj="LON: $perlvar{'lonHostID'} E:$errors W:$warnings N:$notices"; |
my $subj="LON: $perlvar{'lonHostID'} E:$errors W:$warnings N:$notices"; |
|
|
my $result=system("metasend -b -t $emailto -s '$subj' -f $statusdir/index.html -m text/html >& /dev/null"); |
my $result=system("metasend -b -S 4000000 -t $emailto -s '$subj' -f $statusdir/index.html -m text/html >& /dev/null"); |
if ($result != 0) { |
if ($result != 0) { |
$result=system("mail -s '$subj' $emailto < $statusdir/index.html"); |
$result=system("mail -s '$subj' $emailto < $statusdir/index.html"); |
} |
} |
Line 583 Options:
|
Line 587 Options:
|
running, do not send emails do not |
running, do not send emails do not |
check the lonc/d connections, do not |
check the lonc/d connections, do not |
generate lon-status |
generate lon-status |
|
--justreload Only tell the daemons to reload the config files, |
|
do not send emails do not |
|
check if the daemons are running, do not |
|
generate lon-status |
|
|
USAGE |
USAGE |
} |
} |
|
|
# ================================================================ Main Program |
# ================================================================ Main Program |
sub main () { |
sub main () { |
my ($oldlonc,$help,$justcheckdaemons,$noemail,$justcheckconnections); |
my ($oldlonc,$help,$justcheckdaemons,$noemail,$justcheckconnections, |
|
$justreload); |
&GetOptions("help" => \$help, |
&GetOptions("help" => \$help, |
"oldlonc" => \$oldlonc, |
"oldlonc" => \$oldlonc, |
"justcheckdaemons" => \$justcheckdaemons, |
"justcheckdaemons" => \$justcheckdaemons, |
"noemail" => \$noemail, |
"noemail" => \$noemail, |
"justcheckconnections" => \$justcheckconnections |
"justcheckconnections" => \$justcheckconnections, |
|
"justreload" => \$justreload |
); |
); |
if ($help) { &usage(); return; } |
if ($help) { &usage(); return; } |
# --------------------------------- Read loncapa_apache.conf and loncapa.conf |
# --------------------------------- Read loncapa_apache.conf and loncapa.conf |
Line 664 sub main () {
|
Line 674 sub main () {
|
|
|
|
|
my $fh; |
my $fh; |
if (!$justcheckdaemons && !$justcheckconnections) { |
if (!$justcheckdaemons && !$justcheckconnections && !$justreload) { |
$fh=&start_logging(\%hostdom,\%hostrole,\%hostname,\%spareid); |
$fh=&start_logging(\%hostdom,\%hostrole,\%hostname,\%spareid); |
|
|
&log_machine_info($fh); |
&log_machine_info($fh); |
Line 673 sub main () {
|
Line 683 sub main () {
|
&check_httpd_logs($fh); |
&check_httpd_logs($fh); |
&rotate_lonnet_logs($fh); |
&rotate_lonnet_logs($fh); |
} |
} |
if (!$justcheckconnections) { |
if (!$justcheckconnections && !$justreload) { |
&checkon_daemon($fh,'lonsql',200000); |
&checkon_daemon($fh,'lonsql',200000); |
&checkon_daemon($fh,'lond',40000,1); |
&checkon_daemon($fh,'lond',40000,'USR1'); |
my $args='new'; |
my $args='new'; |
if ($oldlonc) { $args = ''; } |
if ($oldlonc) { $args = ''; } |
&checkon_daemon($fh,'lonc',40000,1,$args); |
&checkon_daemon($fh,'lonc',40000,'USR1',$args); |
&checkon_daemon($fh,'lonhttpd',40000); |
&checkon_daemon($fh,'lonhttpd',40000); |
&checkon_daemon($fh,'lonmemcached',40000); |
&checkon_daemon($fh,'lonmemcached',40000); |
} |
} |
if (!$justcheckdaemons) { |
if ($justreload) { |
|
&checkon_daemon($fh,'lond',40000,'USR2'); |
|
my $args='new'; |
|
if ($oldlonc) { $args = ''; } |
|
&checkon_daemon($fh,'lonc',40000,'USR2',$args); |
|
} |
|
if (!$justcheckdaemons && !$justreload) { |
&test_connections($fh,\%hostname); |
&test_connections($fh,\%hostname); |
} |
} |
if (!$justcheckdaemons && !$justcheckconnections) { |
if (!$justcheckdaemons && !$justcheckconnections && !$justreload) { |
&check_delayed_msg($fh); |
&check_delayed_msg($fh); |
&finish_logging($fh); |
&finish_logging($fh); |
&log_simplestatus(); |
&log_simplestatus(); |