#!/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, "</etc/passwd");
@lines=<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";
}
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>