upgrade of apache2 runlevel scripts from 2.0 to 2.2
authorAndreas Steffen <andreas.steffen@strongswan.org>
Fri, 9 Nov 2007 00:48:08 +0000 (00:48 -0000)
committerAndreas Steffen <andreas.steffen@strongswan.org>
Fri, 9 Nov 2007 00:48:08 +0000 (00:48 -0000)
testing/hosts/winnetou/etc/init.d/apache2
testing/hosts/winnetou/etc/runlevels/default/apache2

index f54f344..5f72d30 100755 (executable)
 #!/sbin/runscript
-# Copyright 1999-2004 Gentoo Foundation
+# Copyright 1999-2007 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
-opts="${opts} reload"
+opts="configtest fullstatus graceful gracefulstop modules reload"
 
-[ "x${SERVERROOT}" != "x" ] && APACHE2_OPTS="${APACHE2_OPTS} -d ${SERVERROOT}"
-[ "x${CONFIGFILE}" != "x" ] && APACHE2_OPTS="${APACHE2_OPTS} -f ${CONFIGFILE}"
-[ "x${STARTUPERRORLOG}" != "x" ] && APACHE2_OPTS="${APACHE2_OPTS} -E ${STARTUPERRORLOG}"
-# set a default for PIDFILE/RESTARTSTYLE for those that FAILED to follow
-# instructiosn and update the conf.d/apache2 file.
-# (bug #38787)
-[ -z "${PIDFILE}" ] && PIDFILE=/var/run/apache2.pid
-[ -z "${RESTARTSTYLE}" ] && RESTARTSTYLE="graceful"
+depend() {
+       need net
+       use mysql dns logger netmount postgresql
+       after sshd
+}
+
+configtest() {
+       ebegin "Checking Apache Configuration"
+       checkconfig
+       eend $?
+}
 
 checkconfig() {
-       local myconf="/etc/apache2/conf/apache2.conf"
-       if [ "x${CONFIGFILE}" != "x" ]; then
-               if [ ${CONFIGFILE:0:1} = "/" ]; then
-                       myconf="${CONFIGFILE}"
-               else
-                       myconf="${SERVERROOT:-/usr/lib/apache2}/${CONFIGFILE}"
-               fi
+       SERVERROOT="${SERVERROOT:-/usr/lib/apache2}"
+       if [ ! -d ${SERVERROOT} ]; then
+               eerror "SERVERROOT does not exist: ${SERVERROOT}"
+               return 1
        fi
-       if [ ! -r "${myconf}" ]; then
-               eerror "Unable to read configuration file: ${myconf}"
+
+       CONFIGFILE="${CONFIGFILE:-/etc/apache2/httpd.conf}"
+       [ "${CONFIGFILE#/}" = "${CONFIGFILE}" ] && CONFIGFILE="${SERVERROOT}/${CONFIGFILE}"
+       if [ ! -r "${CONFIGFILE}" ]; then
+               eerror "Unable to read configuration file: ${CONFIGFILE}"
                return 1
        fi
-    if [ -z "${PIDFILE}" ]; then
-        eerror "\$PIDFILE is not set!"
-        eerror "Did you etc-update /etc/conf.d/apache2?"
-        return 1
-    fi
-    if [ -z "${RESTARTSTYLE}" ]; then
-        eerror "\$RESTARTSTYLE is not set!"
-        eerror "Did you etc-update /etc/conf.d/apache2?"
-        return 1
-    fi
-       /usr/sbin/apache2 -t ${APACHE2_OPTS} 1>/dev/null 2>&1
+
+       APACHE2_OPTS="${APACHE2_OPTS} -d ${SERVERROOT}"
+       APACHE2_OPTS="${APACHE2_OPTS} -f ${CONFIGFILE}"
+       [ -n "${STARTUPERRORLOG}" ] && APACHE2_OPTS="${APACHE2_OPTS} -E ${STARTUPERRORLOG}"
+
+       APACHE2="/usr/sbin/apache2"
+
+       ${APACHE2} ${APACHE2_OPTS} -t 1>/dev/null 2>&1
        ret=$?
        if [ $ret -ne 0 ]; then
                eerror "Apache2 has detected a syntax error in your configuration files:"
-               /usr/sbin/apache2 -t ${APACHE2_OPTS}
+               ${APACHE2} ${APACHE2_OPTS} -t
        fi
-       return $ret
-}
 
-depend() {
-       need net
-       use mysql dns logger netmount postgres
-       after sshd
+       return $ret
 }
 
 start() {
        checkconfig || return 1
        ebegin "Starting apache2"
        [ -f /var/log/apache2/ssl_scache ] && rm /var/log/apache2/ssl_scache
-       [ -f /usr/lib/apache2/build/envvars ] && . /usr/lib/apache2/build/envvars
-       env -i PATH=$PATH /sbin/start-stop-daemon --quiet \
-               --start --startas /usr/sbin/apache2 \
-               --pidfile ${PIDFILE} -- -k start ${APACHE2_OPTS}
+
+       start-stop-daemon --start --exec ${APACHE2} -- ${APACHE2_OPTS} -k start
        eend $?
 }
 
 stop() {
+       checkconfig || return 1
        ebegin "Stopping apache2"
-       /usr/sbin/apache2ctl stop >/dev/null
-       start-stop-daemon -o --quiet --stop --pidfile ${PIDFILE}
+       start-stop-daemon --stop --retry -TERM/5/-KILL/5 --exec ${APACHE2} --pidfile /var/run/apache2.pid
        eend $?
 }
 
 reload() {
-       # restarting apache2 is much easier than apache1. The server handles most of the work for us. 
-       # see http://httpd.apache.org/docs-2.0/stopping.html for more details
-       ebegin "Restarting apache2"
-       /usr/sbin/apache2 ${APACHE2_OPTS} -k ${RESTARTSTYLE}
+       RELOAD_TYPE="${RELOAD_TYPE:-graceful}"
+
+       checkconfig || return 1
+       if [ "${RELOAD_TYPE}" = "restart" ]; then
+               ebegin "Restarting apache2"
+               start-stop-daemon --stop --oknodo --signal HUP --exec ${APACHE2} --pidfile /var/run/apache2.pid
+               eend $?
+       elif [ "${RELOAD_TYPE}" = "graceful" ]; then
+               ebegin "Gracefully restarting apache2"
+               start-stop-daemon --stop --oknodo --signal USR1 --exec ${APACHE2} --pidfile /var/run/apache2.pid
+               eend $?
+       else
+               eerror "${RELOAD_TYPE} is not a valid RELOAD_TYPE. Please edit /etc/conf.d/apache2"
+       fi
+}
+
+graceful() {
+       checkconfig || return 1
+       ebegin "Gracefully restarting apache2"
+       start-stop-daemon --stop --signal USR1 --exec ${APACHE2} --pidfile /var/run/apache2.pid
+       eend $?
+}
+
+gracefulstop() {
+       checkconfig || return 1
+       
+       # zap!
+       if service_started "${myservice}"; then
+               mark_service_stopped "${myservice}"
+       fi
+
+       ebegin "Gracefully stopping apache2"
+       # 28 is SIGWINCH
+       start-stop-daemon --stop --signal 28 --exec ${APACHE2} --pidfile /var/run/apache2.pid
        eend $?
 }
+
+modules() {
+       checkconfig || return 1
+
+       ${APACHE2} ${APACHE2_OPTS} -M 2>&1
+}
+
+status() {
+       LYNX="${LYNX:-lynx -dump}"
+       STATUSURL="${STATUSURL:-http://localhost/server-status}"
+       
+       ${LYNX} ${STATUSURL} | awk ' /process$/ { print; exit } { print } '
+}
+
+fullstatus() {
+       LYNX="${LYNX:-lynx -dump}"
+       STATUSURL="${STATUSURL:-http://localhost/server-status}"
+       
+       ${LYNX} ${STATUSURL}
+}
index f54f344..5f72d30 100755 (executable)
 #!/sbin/runscript
-# Copyright 1999-2004 Gentoo Foundation
+# Copyright 1999-2007 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
-opts="${opts} reload"
+opts="configtest fullstatus graceful gracefulstop modules reload"
 
-[ "x${SERVERROOT}" != "x" ] && APACHE2_OPTS="${APACHE2_OPTS} -d ${SERVERROOT}"
-[ "x${CONFIGFILE}" != "x" ] && APACHE2_OPTS="${APACHE2_OPTS} -f ${CONFIGFILE}"
-[ "x${STARTUPERRORLOG}" != "x" ] && APACHE2_OPTS="${APACHE2_OPTS} -E ${STARTUPERRORLOG}"
-# set a default for PIDFILE/RESTARTSTYLE for those that FAILED to follow
-# instructiosn and update the conf.d/apache2 file.
-# (bug #38787)
-[ -z "${PIDFILE}" ] && PIDFILE=/var/run/apache2.pid
-[ -z "${RESTARTSTYLE}" ] && RESTARTSTYLE="graceful"
+depend() {
+       need net
+       use mysql dns logger netmount postgresql
+       after sshd
+}
+
+configtest() {
+       ebegin "Checking Apache Configuration"
+       checkconfig
+       eend $?
+}
 
 checkconfig() {
-       local myconf="/etc/apache2/conf/apache2.conf"
-       if [ "x${CONFIGFILE}" != "x" ]; then
-               if [ ${CONFIGFILE:0:1} = "/" ]; then
-                       myconf="${CONFIGFILE}"
-               else
-                       myconf="${SERVERROOT:-/usr/lib/apache2}/${CONFIGFILE}"
-               fi
+       SERVERROOT="${SERVERROOT:-/usr/lib/apache2}"
+       if [ ! -d ${SERVERROOT} ]; then
+               eerror "SERVERROOT does not exist: ${SERVERROOT}"
+               return 1
        fi
-       if [ ! -r "${myconf}" ]; then
-               eerror "Unable to read configuration file: ${myconf}"
+
+       CONFIGFILE="${CONFIGFILE:-/etc/apache2/httpd.conf}"
+       [ "${CONFIGFILE#/}" = "${CONFIGFILE}" ] && CONFIGFILE="${SERVERROOT}/${CONFIGFILE}"
+       if [ ! -r "${CONFIGFILE}" ]; then
+               eerror "Unable to read configuration file: ${CONFIGFILE}"
                return 1
        fi
-    if [ -z "${PIDFILE}" ]; then
-        eerror "\$PIDFILE is not set!"
-        eerror "Did you etc-update /etc/conf.d/apache2?"
-        return 1
-    fi
-    if [ -z "${RESTARTSTYLE}" ]; then
-        eerror "\$RESTARTSTYLE is not set!"
-        eerror "Did you etc-update /etc/conf.d/apache2?"
-        return 1
-    fi
-       /usr/sbin/apache2 -t ${APACHE2_OPTS} 1>/dev/null 2>&1
+
+       APACHE2_OPTS="${APACHE2_OPTS} -d ${SERVERROOT}"
+       APACHE2_OPTS="${APACHE2_OPTS} -f ${CONFIGFILE}"
+       [ -n "${STARTUPERRORLOG}" ] && APACHE2_OPTS="${APACHE2_OPTS} -E ${STARTUPERRORLOG}"
+
+       APACHE2="/usr/sbin/apache2"
+
+       ${APACHE2} ${APACHE2_OPTS} -t 1>/dev/null 2>&1
        ret=$?
        if [ $ret -ne 0 ]; then
                eerror "Apache2 has detected a syntax error in your configuration files:"
-               /usr/sbin/apache2 -t ${APACHE2_OPTS}
+               ${APACHE2} ${APACHE2_OPTS} -t
        fi
-       return $ret
-}
 
-depend() {
-       need net
-       use mysql dns logger netmount postgres
-       after sshd
+       return $ret
 }
 
 start() {
        checkconfig || return 1
        ebegin "Starting apache2"
        [ -f /var/log/apache2/ssl_scache ] && rm /var/log/apache2/ssl_scache
-       [ -f /usr/lib/apache2/build/envvars ] && . /usr/lib/apache2/build/envvars
-       env -i PATH=$PATH /sbin/start-stop-daemon --quiet \
-               --start --startas /usr/sbin/apache2 \
-               --pidfile ${PIDFILE} -- -k start ${APACHE2_OPTS}
+
+       start-stop-daemon --start --exec ${APACHE2} -- ${APACHE2_OPTS} -k start
        eend $?
 }
 
 stop() {
+       checkconfig || return 1
        ebegin "Stopping apache2"
-       /usr/sbin/apache2ctl stop >/dev/null
-       start-stop-daemon -o --quiet --stop --pidfile ${PIDFILE}
+       start-stop-daemon --stop --retry -TERM/5/-KILL/5 --exec ${APACHE2} --pidfile /var/run/apache2.pid
        eend $?
 }
 
 reload() {
-       # restarting apache2 is much easier than apache1. The server handles most of the work for us. 
-       # see http://httpd.apache.org/docs-2.0/stopping.html for more details
-       ebegin "Restarting apache2"
-       /usr/sbin/apache2 ${APACHE2_OPTS} -k ${RESTARTSTYLE}
+       RELOAD_TYPE="${RELOAD_TYPE:-graceful}"
+
+       checkconfig || return 1
+       if [ "${RELOAD_TYPE}" = "restart" ]; then
+               ebegin "Restarting apache2"
+               start-stop-daemon --stop --oknodo --signal HUP --exec ${APACHE2} --pidfile /var/run/apache2.pid
+               eend $?
+       elif [ "${RELOAD_TYPE}" = "graceful" ]; then
+               ebegin "Gracefully restarting apache2"
+               start-stop-daemon --stop --oknodo --signal USR1 --exec ${APACHE2} --pidfile /var/run/apache2.pid
+               eend $?
+       else
+               eerror "${RELOAD_TYPE} is not a valid RELOAD_TYPE. Please edit /etc/conf.d/apache2"
+       fi
+}
+
+graceful() {
+       checkconfig || return 1
+       ebegin "Gracefully restarting apache2"
+       start-stop-daemon --stop --signal USR1 --exec ${APACHE2} --pidfile /var/run/apache2.pid
+       eend $?
+}
+
+gracefulstop() {
+       checkconfig || return 1
+       
+       # zap!
+       if service_started "${myservice}"; then
+               mark_service_stopped "${myservice}"
+       fi
+
+       ebegin "Gracefully stopping apache2"
+       # 28 is SIGWINCH
+       start-stop-daemon --stop --signal 28 --exec ${APACHE2} --pidfile /var/run/apache2.pid
        eend $?
 }
+
+modules() {
+       checkconfig || return 1
+
+       ${APACHE2} ${APACHE2_OPTS} -M 2>&1
+}
+
+status() {
+       LYNX="${LYNX:-lynx -dump}"
+       STATUSURL="${STATUSURL:-http://localhost/server-status}"
+       
+       ${LYNX} ${STATUSURL} | awk ' /process$/ { print; exit } { print } '
+}
+
+fullstatus() {
+       LYNX="${LYNX:-lynx -dump}"
+       STATUSURL="${STATUSURL:-http://localhost/server-status}"
+       
+       ${LYNX} ${STATUSURL}
+}