version 1.6, 2000/10/26 22:21:02
|
version 1.9, 2000/12/08 23:33:36
|
Line 303 print $fh "</pre>";
|
Line 303 print $fh "</pre>";
|
|
|
my $londfile="$perlvar{'lonDaemons'}/logs/lond.pid"; |
my $londfile="$perlvar{'lonDaemons'}/logs/lond.pid"; |
|
|
if (-e $londfile) { |
my $restartflag=1; |
|
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</h3>"; |
|
$restartflag=0; |
} else { |
} else { |
$errors++; $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. |
|
# 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 zombie process |
|
# Possibility #3: there is a live process that is not responding |
|
# for an unknown reason |
|
# Solution: kill process, remove .pid and restart |
|
`killall -9 lond`; |
|
unlink($londfile); |
|
$restartflag=1; |
|
} |
|
print $fh |
|
"<h3>Deciding to clean up stale .pid file and restart lond</h3>"; |
} |
} |
} else { |
} |
|
if ($restartflag==1) { |
$errors++; |
$errors++; |
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("$perlvar{'lonDaemons'}/lond"); |
Line 383 print $fh "</pre>";
|
Line 404 print $fh "</pre>";
|
|
|
my $loncfile="$perlvar{'lonDaemons'}/logs/lonc.pid"; |
my $loncfile="$perlvar{'lonDaemons'}/logs/lonc.pid"; |
|
|
|
$restartflag=1; |
if (-e $loncfile) { |
if (-e $loncfile) { |
my $lfh=IO::File->new("$loncfile"); |
my $lfh=IO::File->new("$loncfile"); |
my $loncpid=<$lfh>; |
my $loncpid=<$lfh>; |
Line 390 if (-e $loncfile) {
|
Line 412 if (-e $loncfile) {
|
if (kill 0 => $loncpid) { |
if (kill 0 => $loncpid) { |
print $fh "<h3>lonc at pid $loncpid responding, sending USR1</h3>"; |
print $fh "<h3>lonc at pid $loncpid responding, sending USR1</h3>"; |
kill USR1 => $loncpid; |
kill USR1 => $loncpid; |
|
$restartflag=0; |
} else { |
} else { |
$errors++; $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 zombie process |
|
# Possibility #3: there is a live process that is not responding |
|
# for an unknown reason |
|
# Solution: kill process, remove .pid and restart |
|
`killall -9 lonc`; |
|
unlink($loncfile); |
|
$restartflag=1; |
|
} |
|
print $fh |
|
"<h3>Deciding to clean up stale .pid file and restart lonc</h3>"; |
} |
} |
} else { |
} |
|
if ($restartflag==1) { |
$errors++; |
$errors++; |
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("$perlvar{'lonDaemons'}/lonc"); |