File:  [LON-CAPA] / loncom / init.d / loncontrol
Revision 1.1: download - view: text, annotated - select for diffs
Thu Oct 26 01:24:23 2000 UTC (23 years, 7 months ago) by harris41
Branches: MAIN
CVS tags: HEAD
a /etc/rc.d/init.d script for controlling the stopping and starting
of LON-CAPA network processes

    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>