Annotation of loncom/init.d/loncontrol, revision 1.19
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 {
1.19 ! albertel 26: my ($daemon,$killallname)=@_;
1.11 albertel 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) {
1.19 ! albertel 40: print("failed to kill");
1.11 albertel 41: } else {
1.19 ! albertel 42: print("killed");
1.11 albertel 43: }
44: } else {
1.19 ! albertel 45: print("stopped");
1.11 albertel 46: }
1.19 ! albertel 47: } else {
! 48: print("not running");
! 49: }
! 50: system("killall -q -0 $killallname");
! 51: if ($? == 0) {
! 52: system("killall -q $killallname");
! 53: print(", killed off extraneous processes");
1.11 albertel 54: }
1.19 ! albertel 55: print("\n");
1.11 albertel 56: }
57:
1.16 albertel 58: if (($command eq "restartold") or ($command eq "reloadold")) {
1.6 harris41 59: print 'Restarting LON-CAPA'."\n";
60: print 'Ending LON-CAPA client and daemon processes'."\n";
1.13 albertel 61: foreach my $daemon ('lonsql','lond','lonc','lonhttpd') {
1.19 ! albertel 62: &stop_daemon($daemon,$daemon);
1.11 albertel 63: }
1.6 harris41 64: print 'Starting LON-CAPA client and daemon processes (please be patient)'.
65: "\n";
1.18 albertel 66: system("su www -c '/home/httpd/perl/loncron --oldlonc --justcheckdaemons'");
1.16 albertel 67: } elsif (($command eq "restart") or ($command eq "reload")) {
1.12 albertel 68: print 'Restarting LON-CAPA'."\n";
69: print 'Ending LON-CAPA client and daemon processes'."\n";
1.13 albertel 70: foreach my $daemon ('lonsql','lond','lonc','lonhttpd') {
1.19 ! albertel 71: my $killallname=$daemon;
! 72: if ($daemon eq 'lonc') { $killallname='loncnew'; }
! 73: &stop_daemon($daemon,$killallname);
1.12 albertel 74: }
75: print 'Starting LON-CAPA client and daemon processes (please be patient)'.
76: "\n";
1.18 albertel 77: system("su www -c '/home/httpd/perl/loncron --justcheckdaemons'");
1.16 albertel 78: } elsif ($command eq "stop") {
1.6 harris41 79: print 'Stopping LON-CAPA'."\n";
1.13 albertel 80: foreach my $daemon ('lonsql','lond','lonc','lonhttpd') {
1.19 ! albertel 81: my $killallname=$daemon;
! 82: if ($daemon eq 'lonc') { $killallname='loncnew'; }
! 83: &stop_daemon($daemon,$killallname);
1.11 albertel 84: }
1.16 albertel 85: } elsif ($command eq "startold") {
1.6 harris41 86: print 'Starting LON-CAPA'."\n";
87: print 'Starting LON-CAPA client and daemon processes (please be patient)'.
88: "\n";
1.18 albertel 89: system("su www -c '/home/httpd/perl/loncron --oldlonc --justcheckdaemons'");
1.16 albertel 90: } elsif ($command eq "start") {
1.12 albertel 91: print 'Starting LON-CAPA'."\n";
92: print 'Starting LON-CAPA client and daemon processes (please be patient)'.
93: "\n";
1.18 albertel 94: system("su www -c '/home/httpd/perl/loncron --justcheckdaemons'");
1.16 albertel 95: } elsif ($command eq "status") {
1.1 harris41 96: $response=`/bin/cat /home/httpd/perl/logs/*.pid 2>&1`;
97: if ($response=~/No such file or directory/) {
1.6 harris41 98: print 'LON-CAPA is not running.'."\n";
1.18 albertel 99: } else {
1.6 harris41 100: print 'LON-CAPA is running.'."\n";
1.18 albertel 101: system("su www -c '/home/httpd/perl/loncron --justcheckconnections'");
1.1 harris41 102: }
1.16 albertel 103: } else {
1.18 albertel 104: print 'You need to specify one of restart|stop|start|status on the command line.'."\n";
1.1 harris41 105: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>