version 1.27, 2006/01/28 11:21:42
|
version 1.33, 2008/11/04 21:06:31
|
Line 32
|
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 |
# config: /home/httpd/lonTabs/spare.tab |
# config: /home/httpd/lonTabs/spare.tab |
|
# SuSE chkconfig/insserv info |
|
### BEGIN INIT INFO |
|
# Provides: loncapa |
|
# Required-Start: mysql apache2 $network $remote_fs |
|
# Required-Stop: |
|
# Default-Start: 3 4 5 |
|
# Default-Stop: |
|
# Description: Starts the LON-CAPA services |
|
### END INIT INFO |
|
|
|
|
$command=$ARGV[0]; $command=~s/[^a-z]//g; |
$command=$ARGV[0]; $command=~s/[^a-z]//g; |
|
|
Line 54 $ENV{'BASH_ENV'}="";
|
Line 64 $ENV{'BASH_ENV'}="";
|
} |
} |
} |
} |
my $lond_port = 5663; |
my $lond_port = 5663; |
my $lonhttpd_port = 8080; |
|
|
|
sub firewall_open_port { |
sub firewall_open_port { |
return if (! &firewall_is_active); |
return if (! &firewall_is_active); |
Line 64 sub firewall_open_port {
|
Line 73 sub firewall_open_port {
|
# We could restrict the servers allowed to attempt to communicate |
# We could restrict the servers allowed to attempt to communicate |
# here, but the logistics of updating the /home/httpd/lonTabs/host.tab |
# here, but the logistics of updating the /home/httpd/lonTabs/host.tab |
# file are likely to be a problem |
# file are likely to be a problem |
foreach my $port ($lond_port,$lonhttpd_port) { |
foreach my $port ($lond_port) { |
print "Opening firewall access on port $port.\n"; |
print "Opening firewall access on port $port.\n"; |
|
|
my $firewall_command = |
my $firewall_command = |
Line 105 sub firewall_is_active {
|
Line 114 sub firewall_is_active {
|
|
|
sub firewall_close_port { |
sub firewall_close_port { |
return if (! &firewall_is_active); |
return if (! &firewall_is_active); |
foreach my $port ($lond_port,$lonhttpd_port) { |
foreach my $port ($lond_port) { |
print "Closing firewall access on port $port.\n"; |
print "Closing firewall access on port $port.\n"; |
my $firewall_command = |
my $firewall_command = |
"$iptables -D $fw_chain -p tcp -d 0/0 --dport $port -j ACCEPT"; |
"$iptables -D $fw_chain -p tcp -d 0/0 --dport $port -j ACCEPT"; |
Line 134 sub stop_daemon {
|
Line 143 sub stop_daemon {
|
my $daemonpid=<PIDFILE>; |
my $daemonpid=<PIDFILE>; |
chomp($daemonpid); |
chomp($daemonpid); |
kill TERM => $daemonpid; |
kill TERM => $daemonpid; |
sleep 1; |
my $count=0; |
|
while ($count++ < 5 && kill(0 => $daemonpid)) { |
|
sleep 1; |
|
} |
if (kill 0 => $daemonpid) { |
if (kill 0 => $daemonpid) { |
kill KILL => $daemonpid; |
kill KILL => $daemonpid; |
sleep 1; |
sleep 1; |
Line 158 sub stop_daemon {
|
Line 170 sub stop_daemon {
|
print("\n"); |
print("\n"); |
} |
} |
|
|
|
sub clean_sockets { |
if (($command eq "restartold") or ($command eq "reloadold")) { |
opendir(SOCKETS,"/home/httpd/sockets/"); |
print 'Restarting LON-CAPA'."\n"; |
while (my $fname=readdir(SOCKETS)) { |
print 'Ending LON-CAPA client and daemon processes'."\n"; |
next if (-d $fname |
foreach my $daemon ('lonsql','lond','lonc','lonhttpd','lonmemcached') { |
|| $fname=~/(mysqlsock|maximasock|\Q$perlvar{'lonSockDir'}\E)/); |
&stop_daemon($daemon,$daemon); |
unlink("/home/httpd/sockets/$fname"); |
} |
} |
print 'Starting LON-CAPA client and daemon processes (please be patient)'. |
} |
"\n"; |
|
system("su www -c '/home/httpd/perl/loncron --oldlonc --justcheckdaemons'"); |
if ($command eq "restart") { |
} elsif ($command eq "restart") { |
|
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','lonmemcached') { |
foreach my $daemon ('lonsql','lond','lonc','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 181 if (($command eq "restartold") or ($comm
|
Line 192 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','lonmemcached') { |
foreach my $daemon ('lonsql','lond','lonc','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") { |
&clean_sockets(); |
&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"; |