If you frequently restart your sandbox in single process mode, occassionally you may get an error "…". Here is how I clean up share memory segments:

ipcs -s | gawk '{ print $2 }' | grep -P '\d' | xargs -n 1 ipcrm -s

What is an MPM?

MPM stand for Multi-Processing Modules. It is a modular design / API that allow apache to be easily ported to a wide variety of platforms in a range of different environments. Different platforms and different environments often require different features, or may have different ways of implementing the same feature most efficiently. This design allows the webmaster to choose which features to be included in the server by selecting which modules to load either at compile-time or at run-time.

At the user level, MPMs appear much like other modules. The main difference is that one and only one MPM can be loaded into the server at any time. MPMs must be chosen during configuration, and compiled into the server. Compilers are capable of optimizing a lot of functions if threads are used, but only if they know that threads are being used. Different distribution (operating system) may provide different binaries for different mpm. For example, RedHat ES4 or Fedora Core 4 provide /usr/sbin/httpd.worker for the worker (threaded) mpm, and /usr/sbin/httpd for the prefork mpm.

How do I know which mpm is currently used?

From command line, you can specify -l option to either /usr/sbin/httpd or apachectl. From inside your code, you can call ap_mpm_query()

How can we build the debuginfo rpm

In order to build the debuginfo rpm for a particular rpm package, the src rpm of the respective package needs to be obtained. In this example, we will build the debuginfo rpm for httpd package.