I'm having a bit of trouble with Apache configuration this morning. I updated some config on a server on Friday, but when I restarted the server, my new changes weren't being picked up. This morning, the config has suddenly started working, but any further changes I make aren't being applied on graceful restart (such as changing the server name, or the docroot, or the authentication methods).

-S is showing that the file is being picked up correctly, and it's loading the right vhost from it. Apache version 1.3.41. Does anyone have any ideas that might make sense with this, am I being incredibly dumb and just missing something?



graceful restart (e.g. apachectl graceful) only fully restarts Apache when all threads are done working, this stops existing connections being dropped. If you have existing connections (for whatever reason, big file downloads in progress etc), then it'll wait until these are done before restarting.

From man apachectl:

 graceful    Gracefully restarts the Apache daemon by sending
             it  a SIGUSR1.  If the daemon is not running, it
             is started.  This differs from a normal  restart
             in  that  currently  open  connections  are  not

If you want to force your changes, you need to perform a proper immediate restart (e.g. apachectl restart).

  • Doing a process list check, and looking at the start time on them, you're absolutely right. I did know that about apache, but I'm so used to using graceful on non-live servers, I didn't even think that it might not have reloaded yet. Thanks! – Sean Dec 14 '09 at 12:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.