Annotation of loncom/init.d/loncontrol, revision 1.11

1.1       harris41    1: #!/usr/bin/perl
1.2       harris41    2: #
1.6       harris41    3: # The LearningOnline Network with CAPA
                      4: #
1.2       harris41    5: # Startup script for the LON-CAPA network processes
1.6       harris41    6: #
                      7: # YEAR=2000
                      8: # YEAR=2001
1.7       harris41    9: # YEAR=2002
                     10: 
1.3       harris41   11: # chkconfig: 345 95 5
1.9       harris41   12: # description: LON-CAPA is a "network of knowledge".  It is used to
1.6       harris41   13: # distribute knowledge resources and instructional management.
1.2       harris41   14: # processnames: lonc, lond, lonsql
                     15: # pidfiles: /home/httpd/perl/logs/lon*.pid
1.7       harris41   16: # config: /etc/httpd/conf/loncapa.conf
1.2       harris41   17: # config: /home/httpd/lonTabs/hosts.tab
                     18: # config: /home/httpd/lonTabs/spare.tab
                     19: 
1.1       harris41   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: 
1.11    ! albertel   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: 
1.1       harris41   51: if (($command eq "restart") or ($command eq "reload")) {
1.6       harris41   52:     print 'Restarting LON-CAPA'."\n";
                     53:     print 'Ending LON-CAPA client and daemon processes'."\n";
1.11    ! albertel   54:     foreach my $daemon ('lonsql','lond','lonc','lonhttpd') {
        !            55: 	&stop_daemon($daemon);
        !            56:     }
1.6       harris41   57:     print 'Starting LON-CAPA client and daemon processes (please be patient)'.
                     58: 	"\n";
                     59:     system("su -c '/home/httpd/perl/loncron' www");
1.1       harris41   60: }
                     61: elsif ($command eq "stop") {
1.6       harris41   62:     print 'Stopping LON-CAPA'."\n";
1.11    ! albertel   63:     foreach my $daemon ('lonsql','lond','lonc','lonhttpd') {
        !            64: 	&stop_daemon($daemon);
        !            65:     }
1.1       harris41   66: }
                     67: elsif ($command eq "start") {
1.6       harris41   68:     print 'Starting LON-CAPA'."\n";
                     69:     print 'Starting LON-CAPA client and daemon processes (please be patient)'.
                     70: 	"\n"; 
                     71:     system("su -c '/home/httpd/perl/loncron' www");
1.1       harris41   72: }
                     73: elsif ($command eq "status") {
                     74:     $response=`/bin/cat /home/httpd/perl/logs/*.pid 2>&1`;
                     75:     if ($response=~/No such file or directory/) {
1.6       harris41   76: 	print 'LON-CAPA is not running.'."\n";
1.1       harris41   77:     }
                     78:     else {
1.6       harris41   79: 	print 'LON-CAPA is running.'."\n";
1.1       harris41   80:     }
                     81: }
                     82: else {
1.6       harris41   83:     print 'You need to specify restart|stop|start|status on the command line'.
                     84: 	' argument.'."\n";
1.1       harris41   85: }

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