version 1.22, 2004/12/02 21:16:56
|
version 1.29, 2007/04/03 00:47:28
|
Line 1
|
Line 1
|
#!/usr/bin/perl |
#!/usr/bin/perl |
# |
# |
|
# $Id$ |
|
# |
# The LearningOnline Network with CAPA |
# The LearningOnline Network with CAPA |
# |
# |
# Copyright Michigan State University Board of Trustees |
# Copyright Michigan State University Board of Trustees |
Line 30
|
Line 32
|
# chkconfig: 345 95 5 |
# chkconfig: 345 95 5 |
# description: LON-CAPA is a "network of knowledge". It is used to \ |
# description: LON-CAPA is a "network of knowledge". It is used to \ |
# distribute knowledge resources and instructional management. |
# distribute knowledge resources and instructional management. |
# processnames: lonc, lond, lonsql |
# processnames: lonc, lond, lonsql, lonmaxima |
# pidfiles: /home/httpd/perl/logs/lon*.pid |
# pidfiles: /home/httpd/perl/logs/lon*.pid |
# config: /etc/httpd/conf/loncapa.conf |
# config: /etc/httpd/conf/loncapa.conf |
# config: /home/httpd/lonTabs/hosts.tab |
# config: /home/httpd/lonTabs/hosts.tab |
Line 45 $ENV{'BASH_ENV'}="";
|
Line 47 $ENV{'BASH_ENV'}="";
|
# Firewall code is based on the code in FC2 /etc/init.d/ntpd |
# Firewall code is based on the code in FC2 /etc/init.d/ntpd |
my $fw_chain = 'RH-Firewall-1-INPUT'; |
my $fw_chain = 'RH-Firewall-1-INPUT'; |
my $iptables = '/sbin/iptables'; |
my $iptables = '/sbin/iptables'; |
|
if (! -e $iptables) { |
|
$iptables = '/usr/sbin/iptables'; |
|
if (! -e $iptables) { |
|
print("Unable to find iptables command\n"); |
|
} |
|
} |
my $lond_port = 5663; |
my $lond_port = 5663; |
my $lonhttpd_port = 8080; |
my $lonhttpd_port = 8080; |
|
|
Line 120 sub stop_daemon {
|
Line 128 sub stop_daemon {
|
my ($daemon,$killallname)=@_; |
my ($daemon,$killallname)=@_; |
my $pidfile="/home/httpd/perl/logs/$daemon.pid"; |
my $pidfile="/home/httpd/perl/logs/$daemon.pid"; |
|
|
printf("%-10s ",$daemon); |
printf("%-15s ",$daemon); |
if (-e $pidfile) { |
if (-e $pidfile) { |
open(PIDFILE,$pidfile); |
open(PIDFILE,$pidfile); |
my $daemonpid=<PIDFILE>; |
my $daemonpid=<PIDFILE>; |
chomp($daemonpid); |
chomp($daemonpid); |
kill TERM => $daemonpid; |
kill TERM => $daemonpid; |
sleep 2; |
sleep 1; |
if (kill 0 => $daemonpid) { |
if (kill 0 => $daemonpid) { |
kill KILL => $daemonpid; |
kill KILL => $daemonpid; |
sleep 2; |
sleep 1; |
if (kill 0 => $daemonpid) { |
if (kill 0 => $daemonpid) { |
print("failed to kill"); |
print("failed to kill"); |
} else { |
} else { |
Line 146 sub stop_daemon {
|
Line 154 sub stop_daemon {
|
system("killall -q $killallname"); |
system("killall -q $killallname"); |
print(", killed off extraneous processes"); |
print(", killed off extraneous processes"); |
} |
} |
|
unlink($pidfile); |
print("\n"); |
print("\n"); |
} |
} |
|
|
|
|
if (($command eq "restartold") or ($command eq "reloadold")) { |
if ($command eq "restart") { |
print 'Restarting LON-CAPA'."\n"; |
|
print 'Ending LON-CAPA client and daemon processes'."\n"; |
|
foreach my $daemon ('lonsql','lond','lonc','lonhttpd') { |
|
&stop_daemon($daemon,$daemon); |
|
} |
|
print 'Starting LON-CAPA client and daemon processes (please be patient)'. |
|
"\n"; |
|
system("su www -c '/home/httpd/perl/loncron --oldlonc --justcheckdaemons'"); |
|
} elsif (($command eq "restart") or ($command eq "reload")) { |
|
print 'Restarting LON-CAPA'."\n"; |
print 'Restarting LON-CAPA'."\n"; |
print 'Ending LON-CAPA client and daemon processes'."\n"; |
print 'Ending LON-CAPA client and daemon processes'."\n"; |
foreach my $daemon ('lonsql','lond','lonc','lonhttpd') { |
foreach my $daemon ('lonsql','lond','lonc','lonhttpd','lonmemcached','lonmaxima') { |
my $killallname=$daemon; |
my $killallname=$daemon; |
if ($daemon eq 'lonc') { $killallname='loncnew'; } |
if ($daemon eq 'lonc') { $killallname='loncnew'; } |
&stop_daemon($daemon,$killallname); |
&stop_daemon($daemon,$killallname); |
Line 172 if (($command eq "restartold") or ($comm
|
Line 172 if (($command eq "restartold") or ($comm
|
system("su www -c '/home/httpd/perl/loncron --justcheckdaemons'"); |
system("su www -c '/home/httpd/perl/loncron --justcheckdaemons'"); |
} elsif ($command eq "stop") { |
} elsif ($command eq "stop") { |
print 'Stopping LON-CAPA'."\n"; |
print 'Stopping LON-CAPA'."\n"; |
foreach my $daemon ('lonsql','lond','lonc','lonhttpd') { |
foreach my $daemon ('lonsql','lond','lonc','lonhttpd','lonmemcached','lonmaxima') { |
my $killallname=$daemon; |
my $killallname=$daemon; |
if ($daemon eq 'lonc') { $killallname='loncnew'; } |
if ($daemon eq 'lonc') { $killallname='loncnew'; } |
&stop_daemon($daemon,$killallname); |
&stop_daemon($daemon,$killallname); |
} |
} |
&firewall_close_port(); |
&firewall_close_port(); |
} elsif ($command eq "startold") { |
|
&firewall_open_port(); |
|
print 'Starting LON-CAPA'."\n"; |
|
print 'Starting LON-CAPA client and daemon processes (please be patient)'. |
|
"\n"; |
|
system("su www -c '/home/httpd/perl/loncron --oldlonc --justcheckdaemons'"); |
|
} elsif ($command eq "start") { |
} elsif ($command eq "start") { |
&firewall_open_port(); |
&firewall_open_port(); |
print 'Starting LON-CAPA'."\n"; |
print 'Starting LON-CAPA'."\n"; |
print 'Starting LON-CAPA client and daemon processes (please be patient)'. |
print 'Starting LON-CAPA client and daemon processes (please be patient)'. |
"\n"; |
"\n"; |
system("su www -c '/home/httpd/perl/loncron --justcheckdaemons'"); |
system("su www -c '/home/httpd/perl/loncron --justcheckdaemons'"); |
|
} elsif ($command eq "reload") { |
|
print 'Reload LON-CAPA config files'."\n"; |
|
system("su www -c '/home/httpd/perl/loncron --justreload'"); |
} elsif ($command eq "status") { |
} elsif ($command eq "status") { |
$response=`/bin/cat /home/httpd/perl/logs/*.pid 2>&1`; |
$response=`/bin/cat /home/httpd/perl/logs/*.pid 2>&1`; |
if ($response=~/No such file or directory/) { |
if ($response=~/No such file or directory/) { |