X-Git-Url: https://git.pld-linux.org/?a=blobdiff_plain;f=apache.init;h=1808f709555aa7f37bb5fb4ca809126620e8546d;hb=a9f967450f435b2cfb22a5a461d932a123c5f099;hp=c6f40f9e5702969c613a708f38c36c74482bf6fa;hpb=9841efdf354f349a2445b74feca67967dc9db6dc;p=packages%2Fapache.git diff --git a/apache.init b/apache.init index c6f40f9..1808f70 100644 --- a/apache.init +++ b/apache.init @@ -40,57 +40,103 @@ if [ -n "${HTTPD_CONF}" ]; then fi fi +# configtest itself configtest() { - /usr/sbin/httpd.${HTTPD_MPM} -t $CFG $HTTPD_OPTS >/dev/null 2>&1 - RETVAL=$? + /usr/sbin/httpd.${HTTPD_MPM} -t $CFG $HTTPD_OPTS 2>&1 + return $? } -start() { - # Check if the service is already running? - if [ ! -f /var/lock/subsys/httpd ]; then - msg_starting "$SVC_NAME" - daemon /usr/sbin/httpd.${HTTPD_MPM} $CFG $HTTPD_OPTS +# wrapper for configtest: +checkconfig() { + local details=${1:-0} + + if [ $details = 1 ]; then + # run config test and display report (status action) + show "Checking %s configuration" "$SVC_NAME"; busy + local out + out=`configtest 2>&1` RETVAL=$? - [ $RETVAL -eq 0 ] && touch /var/lock/subsys/httpd + if [ $RETVAL = 0 ]; then + ok + else + fail + fi + [ "$out" ] && echo >&2 "$out" else + # run config test and abort with nice message if failed + # (for actions checking status before action). + configtest >/dev/null 2>&1 + RETVAL=$? + if [ $RETVAL != 0 ]; then + show "Checking %s configuration" "$SVC_NAME"; fail + nls 'Configuration test failed. See details with %s "checkconfig"' $0 + exit $RETVAL + fi + fi +} + +start() { + # Check if the service is already running? + if [ -f /var/lock/subsys/httpd ]; then msg_already_running "$SVC_NAME" + return fi + + checkconfig + msg_starting "$SVC_NAME" + daemon --pidfile /var/run/httpd.pid /usr/sbin/httpd.${HTTPD_MPM} $CFG $HTTPD_OPTS + RETVAL=$? + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/httpd } stop() { # Stop daemons. - if [ -f /var/lock/subsys/httpd ]; then - msg_stopping "$SVC_NAME" - 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 + if [ ! -f /var/lock/subsys/httpd ]; then msg_not_running "$SVC_NAME" + return fi + + msg_stopping "$SVC_NAME" + killproc --pidfile /var/run/httpd.pid httpd.${HTTPD_MPM} + rm -f /var/lock/subsys/httpd /var/run/httpd.pid /var/run/httpd.loc* >/dev/null 2>&1 +} + + +reload() { + if [ ! -f /var/lock/subsys/httpd ]; then + msg_not_running "$SVC_NAME" + RETVAL=7 + return + fi + + checkconfig + msg_reloading "$SVC_NAME" + busy + /usr/sbin/httpd.${HTTPD_MPM} $CFG $HTTPD_OPTS -k graceful + RETVAL=$? + [ $RETVAL -eq 0 ] && ok || fail } condrestart() { - if [ -f /var/lock/subsys/httpd ]; then - stop - start - else + if [ ! -f /var/lock/subsys/httpd ]; then msg_not_running "$SVC_NAME" RETVAL=$1 + return fi + + checkconfig + stop + start } RETVAL=0 # See how we were called. case "$1" in start) - start + start ;; stop) - stop - ;; - status) - status httpd.${HTTPD_MPM} - RETVAL=$? - /usr/sbin/httpd.${HTTPD_MPM} $CFG $HTTPD_OPTS -S + stop ;; restart) stop @@ -99,38 +145,16 @@ case "$1" in try-restart) condrestart 0 ;; - reload|force-reload|graceful) - if [ -f /var/lock/subsys/httpd ]; then - configtest - if [ $RETVAL -eq 0 ]; then - msg_reloading "$SVC_NAME" - busy - /usr/sbin/httpd.${HTTPD_MPM} $CFG $HTTPD_OPTS -k graceful - RETVAL=$? - [ $RETVAL -eq 0 ] && ok || fail - fi - else - msg_not_running "$SVC_NAME" - RETVAL=7 - fi + reload|force-reload|graceful|flush-logs) + reload ;; - flush-logs) - if [ -f /var/lock/subsys/httpd ]; then - msg_reloading "$SVC_NAME" - - 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 + checkconfig|configtest) + checkconfig 1 ;; - configtest) - /usr/sbin/httpd.${HTTPD_MPM} -t $CFG $HTTPD_OPTS + status) + status httpd.${HTTPD_MPM} + RETVAL=$? + /usr/sbin/httpd.${HTTPD_MPM} $CFG $HTTPD_OPTS -S ;; *) msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|graceful|configtest|status}"