#!/usr/bin/perl $command=$ARGV[0]; $command=~s/[^a-z]//g; # ($euid,$egid,$uid,$gid)=($>,$),$<,$(); $ENV{'PATH'}="/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin"; $ENV{'BASH_ENV'}=""; open (IN, "; close IN; for $l (@lines) { chop $l; @F=split(/\:/,$l); if ($F[0] eq 'www') {$wwwid=$F[2];} } if ($wwwid!=$<) { die("User ID mismatch. This program must be run as user 'www'\n"); } if (($command eq "restart") or ($command eq "reload")) { print "Restarting LON-CAPA\n"; ($<,$>)=($>,$<); print "Ending LON-CAPA client and daemon processes\n"; print `/bin/kill \`/bin/cat /home/httpd/perl/logs/*.pid\``; print "Starting LON-CAPA client and daemon processes (please be patient)\n"; system("/home/httpd/perl/loncron"); ($<,$>)=($>,$<); print "Restarting web server\n"; print `/etc/rc.d/init.d/httpd restart`; } elsif ($command eq "stop") { print "Stopping LON-CAPA\n"; ($<,$>)=($>,$<); print `/bin/kill \`/bin/cat /home/httpd/perl/logs/*.pid\``; ($<,$>)=($>,$<); print "Stopping web server\n"; print `/etc/rc.d/init.d/httpd stop`; } elsif ($command eq "start") { print "Starting LON-CAPA\n"; print "Starting LON-CAPA client and daemon processes (please be patient)\n"; ($<,$>)=($>,$<); system("/home/httpd/perl/loncron"); ($<,$>)=($>,$<); print "Starting web server\n"; print `/etc/rc.d/init.d/httpd start`; } 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 on the command line argument.\n"; }