#!/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=; 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 "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); } print 'Starting LON-CAPA client and daemon processes (please be patient)'. "\n"; system("su -c '/home/httpd/perl/loncron' www"); } 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); } 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 "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 "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") { $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"; }