--- loncom/init.d/loncontrol 2003/12/18 21:23:01 1.15 +++ loncom/init.d/loncontrol 2004/08/19 18:31:42 1.19 @@ -23,7 +23,7 @@ $ENV{'PATH'}="/sbin:/bin:/usr/sbin:/usr/ $ENV{'BASH_ENV'}=""; sub stop_daemon { - my ($daemon)=@_; + my ($daemon,$killallname)=@_; my $pidfile="/home/httpd/perl/logs/$daemon.pid"; printf("%-10s ",$daemon); @@ -37,65 +37,69 @@ sub stop_daemon { kill KILL => $daemonpid; sleep 2; if (kill 0 => $daemonpid) { - print("failed to kill\n"); return; + print("failed to kill"); } else { - print("killed\n"); return; + print("killed"); } } else { - print("stopped\n"); return; + print("stopped"); } + } else { + print("not running"); } - print("not running\n"); + system("killall -q -0 $killallname"); + if ($? == 0) { + system("killall -q $killallname"); + print(", killed off extraneous processes"); + } + print("\n"); } -if (($command eq "restart") or ($command eq "reload")) { +if (($command eq "restartold") or ($command eq "reloadold")) { print 'Restarting LON-CAPA'."\n"; print 'Ending LON-CAPA client and daemon processes'."\n"; foreach my $daemon ('lonsql','lond','lonc','lonhttpd') { - &stop_daemon($daemon); + &stop_daemon($daemon,$daemon); } print 'Starting LON-CAPA client and daemon processes (please be patient)'. "\n"; - system("su -c '/home/httpd/perl/loncron' www"); -} -elsif (($command eq "restartnew") or ($command eq "reloadnew")) { + system("su www -c '/home/httpd/perl/loncron --oldlonc --justcheckdaemons'"); +} elsif (($command eq "restart") or ($command eq "reload")) { print 'Restarting LON-CAPA'."\n"; print 'Ending LON-CAPA client and daemon processes'."\n"; foreach my $daemon ('lonsql','lond','lonc','lonhttpd') { - &stop_daemon($daemon); + my $killallname=$daemon; + if ($daemon eq 'lonc') { $killallname='loncnew'; } + &stop_daemon($daemon,$killallname); } print 'Starting LON-CAPA client and daemon processes (please be patient)'. "\n"; - system("su -c '/home/httpd/perl/loncron new' www"); -} -elsif ($command eq "stop") { + system("su www -c '/home/httpd/perl/loncron --justcheckdaemons'"); +} elsif ($command eq "stop") { print 'Stopping LON-CAPA'."\n"; foreach my $daemon ('lonsql','lond','lonc','lonhttpd') { - &stop_daemon($daemon); + my $killallname=$daemon; + if ($daemon eq 'lonc') { $killallname='loncnew'; } + &stop_daemon($daemon,$killallname); } -} -elsif ($command eq "start") { +} elsif ($command eq "startold") { print 'Starting LON-CAPA'."\n"; print 'Starting LON-CAPA client and daemon processes (please be patient)'. "\n"; - system("su -c '/home/httpd/perl/loncron' www"); -} -elsif ($command eq "startnew") { + system("su www -c '/home/httpd/perl/loncron --oldlonc --justcheckdaemons'"); +} elsif ($command eq "start") { print 'Starting LON-CAPA'."\n"; print 'Starting LON-CAPA client and daemon processes (please be patient)'. "\n"; - system("su -c '/home/httpd/perl/loncron new' www"); -} -elsif ($command eq "status") { + system("su www -c '/home/httpd/perl/loncron --justcheckdaemons'"); +} elsif ($command eq "status") { $response=`/bin/cat /home/httpd/perl/logs/*.pid 2>&1`; if ($response=~/No such file or directory/) { print 'LON-CAPA is not running.'."\n"; - } - else { + } else { print 'LON-CAPA is running.'."\n"; + system("su www -c '/home/httpd/perl/loncron --justcheckconnections'"); } -} -else { - print 'You need to specify restart|stop|start|status on the command line'. - ' argument.'."\n"; +} else { + print 'You need to specify one of restart|stop|start|status on the command line.'."\n"; }