Diff for /loncom/apachereload between versions 1.7 and 1.8

version 1.7, 2011/05/14 16:12:53 version 1.8, 2020/01/25 21:09:17
Line 32 Line 32
 use strict;  use strict;
 #  #
 #  This script is a setuid script that must be run as user www  #  This script is a setuid script that must be run as user www
 #  it effectively just executes /etc/init.d/httpd reload.  #  it effectively just executes one of the following five commands:
 #  causing the apache daemon to get HUP'd.  The script is  #  /etc/init.d/httpd reload
 #  run by lond after re-initing it's host information.  #  /etc/init.d/apache reload
   #  /etc/init.d/apache2 reload
   #  /bin/systemctl reload httpd.service
   #  /bin/systemctl reload apache2.service
   #  (depending on Linux distro) causing the apache daemon to get HUP'd.
   #  The script is run by lond after re-initing its host information.
   
 $ENV{'PATH'}='/bin:/usr/bin:/usr/local/sbin:/home/httpd/perl'; # Nullify path  $ENV{'PATH'}='/bin:/usr/bin:/usr/local/sbin:/home/httpd/perl'; # Nullify path
                                                                # information                                                                 # information
 delete @ENV{qw(IFS CDPATH ENV BASH_ENV)}; # nullify potential taints  delete @ENV{qw(IFS CDPATH ENV BASH_ENV)}; # nullify potential taints
   
 my $command = "/etc/init.d/httpd reload";  my $command;
   my $checker_bin = '/sbin/chkconfig';
 use lib '/home/httpd/lib/perl/';  my $sysctl_bin = '/bin/systemctl';
 use LONCAPA::Configuration;  my $sysv_bin = '/usr/sbin/sysv-rc-conf';
 my %perlvar= %{&LONCAPA::Configuration::read_conf('loncapa.conf')};  
   if (-x $sysctl_bin) {
 my ($execdir) = ($perlvar{'lonDaemons'} =~/(.*)/);      if (open(PIPE,"$sysctl_bin list-unit-files --type=service 2>/dev/null |")) {
 my $dist=`$execdir/distprobe`;          my @lines = <PIPE>;
 if ($dist =~ /^(suse|sles)/) {          chomp(@lines);
     $command = "/etc/init.d/apache reload";          close(PIPE);
           if (grep(/^httpd\.service/,@lines)) {
               $command = '/bin/systemctl reload httpd.service';
           } elsif (grep(/^apache2\.service/,@lines)) {
               $command = '/bin/systemctl reload apache2.service';
           }
       }
   }
   if (($command eq '') && (-x $checker_bin)) {
       if (open(PIPE,"$checker_bin --list 2>/dev/null |")) {
           my @lines = <PIPE>;
           chomp(@lines);
           close(PIPE);
           if (grep(/^httpd/,@lines)) {
               $command = '/etc/init.d/httpd reload';
           } elsif (grep(/^apache2/,@lines)) {
               $command = '/etc/init.d/apache2 reload';
           } elsif (grep(/^apache\s+/,@lines)) {
               $command = '/etc/init.d/apache reload';
           }
       }
   } 
   if (($command eq '') && (-x $sysv_bin)) {
       if (open(PIPE,"$checker_bin --list 2>/dev/null |")) {
           my @lines = <PIPE>;
           chomp(@lines);
           close(PIPE);
           if (grep(/^apache2/,@lines)) {
               $command = '/etc/init.d/apache2 reload';
           } elsif (grep(/^apache\s+/,@lines)) {
               $command = '/etc/init.d/apache reload';
           }
       }
 }  }
   
 # Do not print error messages  # Do not print error messages
 my $noprint=1;  my $noprint=1;
   
 print "In apachereload" unless $noprint;  if ($command eq '') {
       print("Could not determine command to reload Apache.\n")
           unless $noprint;
       exit 1;
   } else {
       print "In apachereload" unless $noprint;
   }
   
 # ----------------------------- Make sure this process is running from user=www  # ----------------------------- Make sure this process is running from user=www
 my $wwwid=getpwnam('www');  my $wwwid=getpwnam('www');
Line 75  if ($wwwid!=$>) { Line 119  if ($wwwid!=$>) {
 #  Now run the reload:  #  Now run the reload:
 #  #
   
 system($command);  system("$command > /dev/null 2>&1);
   
 &disable_root_capability;  &disable_root_capability;
 exit 0;  exit 0;

Removed from v.1.7  
changed lines
  Added in v.1.8


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>