X-Git-Url: https://git.pld-linux.org/?a=blobdiff_plain;f=apache.init;h=169ec3fa49579130193d4359e94e05cc1ac84a61;hb=5a143de290dc2c17b894f9359a3f184ab2324298;hp=f54568962c14bfd4baf449ea9ac645afd5d08904;hpb=812867fe1491d1f79f50287c1c9bb35163d04ff4;p=packages%2Fapache.git diff --git a/apache.init b/apache.init index f545689..169ec3f 100644 --- a/apache.init +++ b/apache.init @@ -7,10 +7,7 @@ # HTML files and CGI. # processname: httpd # pidfile: /var/run/httpd.pid -# config: /etc/httpd/conf/access.conf -# config: /etc/httpd/conf/httpd.conf -# config: /etc/httpd/conf/srm.conf - +# config: /etc/httpd/apache.conf # Source function library . /etc/rc.d/init.d/functions @@ -19,12 +16,11 @@ . /etc/sysconfig/network # Get service config -[ -f /etc/sysconfig/apache ] && . /etc/sysconfig/apache +[ -f /etc/sysconfig/httpd ] && . /etc/sysconfig/httpd # Check that networking is up. if is_yes "${NETWORKING}"; then if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then - # nls "ERROR: Networking is down. %s can't be run." msg_network_down httpd exit 1 fi @@ -33,64 +29,110 @@ else fi [ -z "$HTTPD_MPM" ] && HTTPD_MPM="prefork" -if [ -d "${HTTPD_CONF:-'/etc/httpd/httpd.conf'}" ]; then - CFG="-f ${HTTPD_CONF:-'/etc/httpd/httpd.conf'}" -elif [ -n "$HTTPD_CONF" ]; then - echo "error: HTTPD_CONF='$HTTPD_CONF': not a file, not a directory" - exit 1 -else - CFG="" + +if [ -n "${HTTPD_CONF}" ]; then + if [ -d "${HTTPD_CONF}" ] || [ -f "${HTTPD_CONF}" ]; then + CFG="-f ${HTTPD_CONF}" + else + echo "error: HTTPD_CONF='$HTTPD_CONF': not a file, not a directory" + exit 1 + fi fi -RETVAL=0 -# See how we were called. -case "$1" in - start) +configtest() { + /usr/sbin/httpd.${HTTPD_MPM} -t $CFG $HTTPD_OPTS >/dev/null 2>&1 + RETVAL=$? +} + +start() { # Check if the service is already running? if [ ! -f /var/lock/subsys/httpd ]; then msg_starting httpd.${HTTPD_MPM} - daemon httpd.${HTTPD_MPM} $CFG $HTTPD_OPTS + daemon /usr/sbin/httpd.${HTTPD_MPM} $CFG $HTTPD_OPTS RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/httpd else msg_already_running httpd.${HTTPD_MPM} fi - ;; - stop) +} + +stop() { # Stop daemons. if [ -f /var/lock/subsys/httpd ]; then msg_stopping httpd.${HTTPD_MPM} - daemon --waitforname httpd.${HTTPD_MPM} --waitfortime 60 httpd.${HTTPD_MPM} $CFG -k stop - RET=$? - # Delete pidfile only when apache was called successfully - if [ $RET -eq 0 ]; then - rm -f /var/lock/subsys/httpd /var/run/httpd.pid /var/run/httpd.loc* >/dev/null 2>&1 - fi + killproc --pidfile httpd.pid httpd.${HTTPD_MPM} + rm -f /var/lock/subsys/httpd /var/run/httpd.pid /var/run/httpd.loc* >/dev/null 2>&1 + else + msg_not_running httpd.${HTTPD_MPM} + fi +} + +condrestart() { + if [ -f /var/lock/subsys/httpd ]; then + stop + start else msg_not_running httpd.${HTTPD_MPM} + RETVAL=$1 fi +} + +RETVAL=0 +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop ;; status) status httpd.${HTTPD_MPM} RETVAL=$? - /usr/sbin/httpd.${HTTPD_MPM} $CFG -S + /usr/sbin/httpd.${HTTPD_MPM} $CFG $HTTPD_OPTS -S ;; restart) - $0 stop - $0 start + stop + start + ;; + try-restart) + condrestart 0 ;; reload|force-reload|graceful) if [ -f /var/lock/subsys/httpd ]; then - msg_reloading httpd.${HTTPD_MPM} - daemon httpd.${HTTPD_MPM} $CFG -k graceful - RETVAL=$? + configtest + if [ $RETVAL -eq 0 ]; then + msg_reloading httpd.${HTTPD_MPM} + busy + /usr/sbin/httpd.${HTTPD_MPM} $CFG $HTTPD_OPTS -k graceful + RETVAL=$? + [ $RETVAL -eq 0 ] && ok || fail + fi else - msg_not_running httpd.${HTTPD_MPM} >&2 + msg_not_running httpd.${HTTPD_MPM} RETVAL=7 fi ;; + flush-logs) + if [ -f /var/lock/subsys/httpd ]; then + msg_reloading httpd.${HTTPD_MPM} + + configtest + if [ $RETVAL -eq 0 ]; then + /usr/sbin/httpd.${HTTPD_MPM} $CFG -k graceful + RETVAL=$? + [ $RETVAL -eq 0 ] && ok || fail + else + fail + echo >&2 "Configuration file syntax test failed. Run $0 configtest to see errors." + fi + fi + ;; + configtest) + /usr/sbin/httpd.${HTTPD_MPM} -t $CFG $HTTPD_OPTS + ;; *) - msg_usage "$0 {start|stop|restart|reload|force-reload|graceful|status}" + msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|graceful|configtest|status}" exit 3 ;; esac