On Thu, 11 Mar 2010, Gilles Chehade wrote:
> On Thu, Mar 11, 2010 at 03:20:33PM +0100, Antoine Jacoutot wrote:
> > On Thu, 11 Mar 2010, Ozgur Kazancci wrote:
> >
> > > When apachectl issuing a restart, it sends a SIGHUP signal to httpd,
> > > and when httpd receives this signal, it doesn't exit from its chroot.
> > > So, "apachectl restart" becomes unfunctional when you have external
> > > modules via LoadModule in your httpd.conf.
> > >
> > > I have the following line in my httpd.conf:
> > >
> > > LoadModule throttle_module /usr/lib/apache/modules/mod_throttle.so
> > >
> > > When you have such a line, (and the module file exists there) apache
> > > doesn't want to restart (apachectl restart) anymore.
> >
> > Oh common, at least read the apachectl(8) man page.
> >
>
> or the FAQ ...
Is this something utterly stupid?
just wasting some time...
david
--- apachectl.orig Wed Mar 3 23:20:53 2010
+++ apachectl Thu Mar 11 20:11:31 2010
@@ -27,6 +27,9 @@
# the path to your httpd binary, including options if necessary
HTTPD=/usr/sbin/httpd
#
+# the path to your httpd configuration file
+CONFIGFILE=/var/www/conf/httpd.conf
+#
# 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.
@@ -116,11 +119,19 @@
fi
else
if $HTTPD $RCFLAGS -t >/dev/null 2>&1; then
- if kill -HUP $PID ; then
- echo "$0 $ARG: httpd restarted"
+ if ps ax | grep $PID | grep chroot >/dev/null && \
+ egrep '^ *LoadModule' $CONFIGFILE >/dev/null
+ then
+ echo "$0 $ARG: httpd chrooted with external modules"
+ echo "$0 $ARG: trying stop/start"
+ $0 stop && sleep 2 && $0 start
else
- echo "$0 $ARG: httpd could not be restarted"
- ERROR=6
+ if kill -HUP $PID ; then
+ echo "$0 $ARG: httpd restarted"
+ else
+ echo "$0 $ARG: httpd could not be restarted"
+ ERROR=6
+ fi
fi
else
echo "$0 $ARG: configuration broken, ignoring restart"