File:  [LON-CAPA] / loncom / init.d / loncontrol
Revision 1.18: download - view: text, annotated - select for diffs
Tue May 11 21:22:04 2004 UTC (19 years, 11 months ago) by albertel
Branches: MAIN
CVS tags: version_1_1_99_4, version_1_1_99_3, version_1_1_99_2, version_1_1_99_1, version_1_1_99_0, HEAD
- use new argument mode
- re/start now don't test the connections
- status now does a conenction status check

    1: #!/usr/bin/perl
    2: #
    3: # The LearningOnline Network with CAPA
    4: #
    5: # Startup script for the LON-CAPA network processes
    6: #
    7: # YEAR=2000
    8: # YEAR=2001
    9: # YEAR=2002
   10: 
   11: # chkconfig: 345 95 5
   12: # description: LON-CAPA is a "network of knowledge".  It is used to
   13: # distribute knowledge resources and instructional management.
   14: # processnames: lonc, lond, lonsql
   15: # pidfiles: /home/httpd/perl/logs/lon*.pid
   16: # config: /etc/httpd/conf/loncapa.conf
   17: # config: /home/httpd/lonTabs/hosts.tab
   18: # config: /home/httpd/lonTabs/spare.tab
   19: 
   20: $command=$ARGV[0]; $command=~s/[^a-z]//g;
   21: 
   22: $ENV{'PATH'}="/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin";
   23: $ENV{'BASH_ENV'}="";
   24: 
   25: sub stop_daemon {
   26:     my ($daemon)=@_;
   27:     my $pidfile="/home/httpd/perl/logs/$daemon.pid";
   28:     
   29:     printf("%-10s ",$daemon);
   30:     if (-e $pidfile) {
   31: 	open(PIDFILE,$pidfile);
   32: 	my $daemonpid=<PIDFILE>;
   33: 	chomp($daemonpid);
   34: 	kill TERM => $daemonpid;
   35: 	sleep 2;
   36: 	if (kill 0 => $daemonpid) {
   37: 	    kill KILL => $daemonpid;
   38: 	    sleep 2;
   39: 	    if (kill 0 => $daemonpid) {
   40: 		print("failed to kill\n"); return;
   41: 	    } else {
   42: 		print("killed\n"); return;
   43: 	    }
   44: 	} else {
   45: 	    print("stopped\n"); return;
   46: 	}
   47:     }
   48:     print("not running\n");
   49: }
   50: 
   51: if (($command eq "restartold") or ($command eq "reloadold")) {
   52:     print 'Restarting LON-CAPA'."\n";
   53:     print 'Ending LON-CAPA client and daemon processes'."\n";
   54:     foreach my $daemon ('lonsql','lond','lonc','lonhttpd') {
   55: 	&stop_daemon($daemon);
   56:     }
   57:     print 'Starting LON-CAPA client and daemon processes (please be patient)'.
   58: 	"\n";
   59:     system("su www -c '/home/httpd/perl/loncron --oldlonc --justcheckdaemons'");
   60: } elsif (($command eq "restart") or ($command eq "reload")) {
   61:     print 'Restarting LON-CAPA'."\n";
   62:     print 'Ending LON-CAPA client and daemon processes'."\n";
   63:     foreach my $daemon ('lonsql','lond','lonc','lonhttpd') {
   64: 	&stop_daemon($daemon);
   65:     }
   66:     print 'Starting LON-CAPA client and daemon processes (please be patient)'.
   67: 	"\n";
   68:     system("su www -c '/home/httpd/perl/loncron --justcheckdaemons'");
   69: } elsif ($command eq "stop") {
   70:     print 'Stopping LON-CAPA'."\n";
   71:     foreach my $daemon ('lonsql','lond','lonc','lonhttpd') {
   72: 	&stop_daemon($daemon);
   73:     }
   74: } elsif ($command eq "startold") {
   75:     print 'Starting LON-CAPA'."\n";
   76:     print 'Starting LON-CAPA client and daemon processes (please be patient)'.
   77: 	"\n"; 
   78:     system("su www -c '/home/httpd/perl/loncron --oldlonc --justcheckdaemons'");
   79: } elsif ($command eq "start") {
   80:     print 'Starting LON-CAPA'."\n";
   81:     print 'Starting LON-CAPA client and daemon processes (please be patient)'.
   82: 	"\n"; 
   83:     system("su www -c '/home/httpd/perl/loncron --justcheckdaemons'");
   84: } elsif ($command eq "status") {
   85:     $response=`/bin/cat /home/httpd/perl/logs/*.pid 2>&1`;
   86:     if ($response=~/No such file or directory/) {
   87: 	print 'LON-CAPA is not running.'."\n";
   88:     } else {
   89: 	print 'LON-CAPA is running.'."\n";
   90: 	system("su www -c '/home/httpd/perl/loncron --justcheckconnections'");
   91:     }
   92: } else {
   93:     print 'You need to specify one of restart|stop|start|status on the command line.'."\n";
   94: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>