| |
| - fail gracefully if links is not installed on target system |
| - source sysconfig/httpd for custom env. vars etc. |
| - make httpd -t work even in SELinux |
| - pass $OPTIONS to all $HTTPD invocation |
| |
| Upstream-HEAD: vendor |
| Upstream-2.0: vendor |
| Upstream-Status: Vendor-specific changes for better initscript integration |
| |
| |
| |
| @@ -44,19 +44,25 @@ ARGV="$@" |
| # the path to your httpd binary, including options if necessary |
| HTTPD='@exp_sbindir@/@progname@' |
| # |
| -# pick up any necessary environment variables |
| -if test -f @exp_sbindir@/envvars; then |
| - . @exp_sbindir@/envvars |
| -fi |
| # |
| # a command that outputs a formatted text version of the HTML at the |
| # url given on the command line. Designed for lynx, however other |
| # programs may work. |
| -LYNX="@LYNX_PATH@ -dump" |
| +if [ -x "@LYNX_PATH@" ]; then |
| + LYNX="@LYNX_PATH@ -dump" |
| +else |
| + LYNX=none |
| +fi |
| # |
| # the URL to your server's mod_status status page. If you do not |
| # have one, then status and fullstatus will not work. |
| STATUSURL="http://localhost:@PORT@/server-status" |
| + |
| +# Source /etc/sysconfig/httpd for $HTTPD setting, etc. |
| +if [ -r /etc/sysconfig/httpd ]; then |
| + . /etc/sysconfig/httpd |
| +fi |
| + |
| # |
| # Set this variable to a command that increases the maximum |
| # number of file descriptors allowed per child process. This is |
| @@ -76,9 +82,27 @@ if [ "x$ARGV" = "x" ] ; then |
| ARGV="-h" |
| fi |
| |
| +function checklynx() { |
| +if [ "$LYNX" = "none" ]; then |
| + echo "The 'links' package is required for this functionality." |
| + exit 8 |
| +fi |
| +} |
| + |
| +function testconfig() { |
| +# httpd is denied terminal access in SELinux, so run in the |
| +# current context to get stdout from $HTTPD -t. |
| +if test -x /usr/sbin/selinuxenabled && /usr/sbin/selinuxenabled; then |
| + runcon -- `id -Z` $HTTPD $OPTIONS -t |
| +else |
| + $HTTPD $OPTIONS -t |
| +fi |
| +ERROR=$? |
| +} |
| + |
| case $ACMD in |
| start|stop|restart|graceful|graceful-stop) |
| - $HTTPD -k $ARGV |
| + $HTTPD $OPTIONS -k $ARGV |
| ERROR=$? |
| ;; |
| startssl|sslstart|start-SSL) |
| @@ -88,17 +112,18 @@ startssl|sslstart|start-SSL) |
| ERROR=2 |
| ;; |
| configtest) |
| - $HTTPD -t |
| - ERROR=$? |
| + testconfig |
| ;; |
| status) |
| + checklynx |
| $LYNX $STATUSURL | awk ' /process$/ { print; exit } { print } ' |
| ;; |
| fullstatus) |
| + checklynx |
| $LYNX $STATUSURL |
| ;; |
| *) |
| - $HTTPD "$@" |
| + $HTTPD $OPTIONS "$@" |
| ERROR=$? |
| esac |
| |