File:  [LON-CAPA] / loncom / init.d / loncontrol
Revision 1.2: download - view: text, annotated - select for diffs
Thu Oct 26 01:37:36 2000 UTC (23 years, 6 months ago) by harris41
Branches: MAIN
CVS tags: HEAD
Trying to handle process ownership issues.  Nothing working yet.

#!/usr/bin/perl
#
# Startup script for the LON-CAPA network processes
# Scott Harrison 10/25/2000
#
# chkconfig: 345 85 15
# description: Apache is a World Wide Web server.  It is used to serve \
#              HTML files and CGI.
# processnames: lonc, lond, lonsql
# pidfiles: /home/httpd/perl/logs/lon*.pid
# config: /etc/httpd/conf/access.conf
# config: /home/httpd/lonTabs/hosts.tab
# config: /home/httpd/lonTabs/spare.tab

open (IN, "</etc/passwd");
@lines=<IN>;
close IN;
for $l (@lines) {
    chop $l;
    @F=split(/\:/,$l);
    if ($F[0] eq 'www') {$wwwid=$F[2];}
}
$<=$wwwid;

open (OUT, ">junk");
print OUT "stuff";
close OUT;
__END__

$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>