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>