File:  [LON-CAPA] / loncom / init.d / loncontrol
Revision 1.15: download - view: text, annotated - select for diffs
Thu Dec 18 21:23:01 2003 UTC (20 years, 4 months ago) by albertel
Branches: MAIN
CVS tags: version_1_1_X, version_1_1_3, version_1_1_2, version_1_1_1, version_1_1_0, version_1_0_99_3, HEAD
- defaulting back to the old lonc

#!/usr/bin/perl
#
# The LearningOnline Network with CAPA
#
# Startup script for the LON-CAPA network processes
#
# YEAR=2000
# YEAR=2001
# YEAR=2002

# chkconfig: 345 95 5
# description: LON-CAPA is a "network of knowledge".  It is used to
# distribute knowledge resources and instructional management.
# processnames: lonc, lond, lonsql
# pidfiles: /home/httpd/perl/logs/lon*.pid
# config: /etc/httpd/conf/loncapa.conf
# config: /home/httpd/lonTabs/hosts.tab
# config: /home/httpd/lonTabs/spare.tab

$command=$ARGV[0]; $command=~s/[^a-z]//g;

$ENV{'PATH'}="/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin";
$ENV{'BASH_ENV'}="";

sub stop_daemon {
    my ($daemon)=@_;
    my $pidfile="/home/httpd/perl/logs/$daemon.pid";
    
    printf("%-10s ",$daemon);
    if (-e $pidfile) {
	open(PIDFILE,$pidfile);
	my $daemonpid=<PIDFILE>;
	chomp($daemonpid);
	kill TERM => $daemonpid;
	sleep 2;
	if (kill 0 => $daemonpid) {
	    kill KILL => $daemonpid;
	    sleep 2;
	    if (kill 0 => $daemonpid) {
		print("failed to kill\n"); return;
	    } else {
		print("killed\n"); return;
	    }
	} else {
	    print("stopped\n"); return;
	}
    }
    print("not running\n");
}

if (($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);
    }
    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")) {
    print 'Restarting LON-CAPA'."\n";
    print 'Ending LON-CAPA client and daemon processes'."\n";
    foreach my $daemon ('lonsql','lond','lonc','lonhttpd') {
	&stop_daemon($daemon);
    }
    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") {
    print 'Stopping LON-CAPA'."\n";
    foreach my $daemon ('lonsql','lond','lonc','lonhttpd') {
	&stop_daemon($daemon);
    }
}
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' www");
}
elsif ($command eq "startnew") {
    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") {
    $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 {
	print 'LON-CAPA is running.'."\n";
    }
}
else {
    print 'You need to specify restart|stop|start|status on the command line'.
	' argument.'."\n";
}

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