--- loncom/loncron	2000/12/23 16:56:46	1.11
+++ loncom/loncron	2001/02/12 18:53:32	1.16
@@ -11,6 +11,7 @@
 # 2/8 Gerd Kortemeyer
 # Dec 00 Scott Harrison
 # 12/23 Gerd Kortemeyer
+# 02/12/2001 Scott Harrison
 
 use IO::File;
 use IO::Socket;
@@ -45,7 +46,6 @@ ENDERROUT
 
 # ================================================================ Main Program
 
-
 # ------------------------------------------------------------ Read access.conf
 {
     my $config=IO::File->new("/etc/httpd/conf/access.conf");
@@ -58,6 +58,31 @@ ENDERROUT
     }
 }
 
+# --------------------------------------- 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'}) {
+   print("Unconfigured machine.\n");
+   $emailto=$perlvar{'lonSysEMail'};
+   $hostname=`/bin/hostname`;
+   chop $hostname;
+   $hostname=~s/[^\w\.]//g; # make sure is safe to pass through shell
+   $subj="LON: Unconfigured machine $hostname";
+   system("echo 'Unconfigured machine $hostname.' |\
+ mailto $emailto -s '$subj' > /dev/null");
+    exit 1;
+}
+
+# ----------------------------- Make sure this process is running from user=www
+my $wwwid=getpwnam('www');
+if ($wwwid!=$<) {
+   print("User ID mismatch.  This program must be run as user 'www'\n");
+   $emailto="$perlvar{'lonAdmEMail'},$perlvar{'lonSysEMail'}";
+   $subj="LON: $perlvar{'lonHostID'} User ID mismatch";
+   system("echo 'User ID mismatch.  loncron must be run as user www.' |\
+ mailto $emailto -s '$subj' > /dev/null");
+   exit 1;
+}
+
 # ------------------------------------------------------------- Read hosts file
 {
     my $config=IO::File->new("$perlvar{'lonTabDir'}/hosts.tab");
@@ -284,7 +309,8 @@ if ($perlvar{'lonRole'} eq "library" &&
     } else {
 	$errors++;
 	print $fh "<h3>lonsql not running, trying to start</h3>";
-	system("$perlvar{'lonDaemons'}/lonsql");
+	system(
+ "$perlvar{'lonDaemons'}/lonsql 2>>$perlvar{'lonDaemons'}/logs/lonsql_errors");
 	sleep 120;
 	if (-e $lonsqlfile) {
 	    print $fh "Seems like it started ...<p>";
@@ -298,7 +324,8 @@ if ($perlvar{'lonRole'} eq "library" &&
 		$errors++; $errors++;
 		print $fh "<h3>lonsql at pid $lonsqlpid not responding</h3>";
 		print $fh "Give it one more try ...<p>";
-		system("$perlvar{'lonDaemons'}/lonsql");
+		system(
+ "$perlvar{'lonDaemons'}/lonsql 2>>$perlvar{'lonDaemons'}/logs/lonsql_errors");
 		sleep 120;
 	    }
 	} else {
@@ -385,7 +412,8 @@ if (-e $londfile) {
 if ($restartflag==1) {
    $errors++;
    print $fh "<h3>lond not running, trying to start</h3>";
-   system("$perlvar{'lonDaemons'}/lond");
+   system(
+     "$perlvar{'lonDaemons'}/lond 2>>$perlvar{'lonDaemons'}/logs/lond_errors");
    sleep 120;
    if (-e $londfile) {
        print $fh "Seems like it started ...<p>";
@@ -399,7 +427,8 @@ if ($restartflag==1) {
           $errors++; $errors++;
           print $fh "<h3>lond at pid $londpid not responding</h3>";
           print $fh "Give it one more try ...<p>";
-          system("$perlvar{'lonDaemons'}/lond");
+	  system(
+ "$perlvar{'lonDaemons'}/lond 2>>$perlvar{'lonDaemons'}/logs/lond_errors");
           sleep 120;
        }
    } else {
@@ -486,7 +515,8 @@ if (-e $loncfile) {
 if ($restartflag==1) {
    $errors++;
    print $fh "<h3>lonc not running, trying to start</h3>";
-   system("$perlvar{'lonDaemons'}/lonc");
+	system(
+ "$perlvar{'lonDaemons'}/lond 2>>$perlvar{'lonDaemons'}/logs/lonc_errors");
    sleep 120;
    if (-e $loncfile) {
        print $fh "Seems like it started ...<p>";
@@ -500,7 +530,8 @@ if ($restartflag==1) {
           $errors++; $errors++;
           print $fh "<h3>lonc at pid $loncpid not responding</h3>";
           print $fh "Give it one more try ...<p>";
-          system("$perlvar{'lonDaemons'}/lonc");
+ 	  system(
+ "$perlvar{'lonDaemons'}/lond 2>>$perlvar{'lonDaemons'}/logs/lonc_errors");
           sleep 120;
        }
    } else {