--- loncom/loncron 2007/04/13 18:26:22 1.73 +++ loncom/loncron 2008/11/04 21:06:21 1.77 @@ -2,7 +2,7 @@ # Housekeeping program, started by cron, loncontrol and loncron.pl # -# $Id: loncron,v 1.73 2007/04/13 18:26:22 albertel Exp $ +# $Id: loncron,v 1.77 2008/11/04 21:06:21 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -81,7 +81,9 @@ sub start_daemon { } my $error_fname="$perlvar{'lonDaemons'}/logs/${daemon}_errors"; &rotate_logfile($error_fname,$fh,'error logs'); - + if ($daemon eq 'lonc') { + &clean_sockets($fh); + } system("$perlvar{'lonDaemons'}/$progname 2>$perlvar{'lonDaemons'}/logs/${daemon}_errors"); sleep 1; if (-e $pidfile) { @@ -302,7 +304,6 @@ sub start_logging {
  • lonsql
  • lond
  • lonc
  • -
  • lonhttpd
  • lonnet
  • Connections
  • Delayed Messages
  • @@ -399,6 +400,21 @@ sub clean_lonIDs { &log($fh,"

    $active open session(s)

    "); } +# ----------------------------------------------------------- clean out sockets +sub clean_sockets { + my ($fh)=@_; + my $cleaned=0; + opendir(SOCKETS,$perlvar{'lonSockDir'}); + while (my $fname=readdir(SOCKETS)) { + next if (-d $fname + || $fname=~/(mysqlsock|maximasock|\Q$perlvar{'lonSockDir'}\E)/); + $cleaned++; + &log($fh,"Unlinking $fname
    "); + unlink("/home/httpd/sockets/$fname"); + } + &log($fh,"

    Cleaned up ".$cleaned." stale sockets.

    "); +} + # ----------------------------------------------------------------------- httpd sub check_httpd_logs { @@ -623,7 +639,7 @@ sub main () { undef $perlvarref; delete $perlvar{'lonReceipt'}; # remove since sensitive and not needed delete $perlvar{'lonSqlAccess'}; # remove since sensitive and not needed - + chdir($perlvar{'lonDaemons'}); # --------------------------------------- Make sure that LON-CAPA is configured # I only test for one thing here (lonHostID). This is just a safeguard. if ('{[[[[lonHostID]]]]}' eq $perlvar{'lonHostID'}) { @@ -673,13 +689,12 @@ sub main () { &rotate_other_logs($fh); } if (!$justcheckconnections && !$justreload) { + &checkon_daemon($fh,'lonmemcached',40000); &checkon_daemon($fh,'lonsql',200000); if ( &checkon_daemon($fh,'lond',40000,'USR1') eq 'running') { &checkon_daemon($fh,'lond',40000,'USR2'); } &checkon_daemon($fh,'lonc',40000,'USR1'); - &checkon_daemon($fh,'lonhttpd',40000); - &checkon_daemon($fh,'lonmemcached',40000); &checkon_daemon($fh,'lonmaxima',40000); } if ($justreload) {