1: #!/usr/bin/perl
2:
3: $command=$ARGV[0]; $command=~s/[^a-z]//g;
4:
5: # ($euid,$egid,$uid,$gid)=($>,$),$<,$();
6: $ENV{'PATH'}="/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin";
7: $ENV{'BASH_ENV'}="";
8:
9: open (IN, "</etc/passwd");
10: @lines=<IN>;
11: close IN;
12: for $l (@lines) {
13: chop $l;
14: @F=split(/\:/,$l);
15: if ($F[0] eq 'www') {$wwwid=$F[2];}
16: }
17: if ($wwwid!=$<) {
18: die("User ID mismatch. This program must be run as user 'www'\n");
19: }
20:
21: if (($command eq "restart") or ($command eq "reload")) {
22: print "Restarting LON-CAPA\n";
23: ($<,$>)=($>,$<);
24: print "Ending LON-CAPA client and daemon processes\n";
25: print `/bin/kill \`/bin/cat /home/httpd/perl/logs/*.pid\``;
26: print "Starting LON-CAPA client and daemon processes (please be patient)\n";
27: system("/home/httpd/perl/loncron");
28: ($<,$>)=($>,$<);
29: print "Restarting web server\n";
30: print `/etc/rc.d/init.d/httpd restart`;
31: }
32: elsif ($command eq "stop") {
33: print "Stopping LON-CAPA\n";
34: ($<,$>)=($>,$<);
35: print `/bin/kill \`/bin/cat /home/httpd/perl/logs/*.pid\``;
36: ($<,$>)=($>,$<);
37: print "Stopping web server\n";
38: print `/etc/rc.d/init.d/httpd stop`;
39: }
40: elsif ($command eq "start") {
41: print "Starting LON-CAPA\n";
42: print "Starting LON-CAPA client and daemon processes (please be patient)\n";
43: ($<,$>)=($>,$<);
44: system("/home/httpd/perl/loncron");
45: ($<,$>)=($>,$<);
46: print "Starting web server\n";
47: print `/etc/rc.d/init.d/httpd start`;
48: }
49: elsif ($command eq "status") {
50: $response=`/bin/cat /home/httpd/perl/logs/*.pid 2>&1`;
51: if ($response=~/No such file or directory/) {
52: print "LON-CAPA is not running.\n";
53: }
54: else {
55: print "LON-CAPA is running.\n";
56: }
57: }
58: else {
59: print "You need to specify restart|stop|start on the command line argument.\n";
60: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>