prefork.xml revision fc88db23cb4b205f1efea5f5d5ae916589db5a61
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<?xml version="1.0"?>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<?xml-stylesheet type="text/xsl" href="/style/manual.xsl"?>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<modulesynopsis>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<name>prefork</name>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<description>Implements a non-threaded, pre-forking web server</description>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<status>MPM</status>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<sourcefile>prefork.c</sourcefile>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<identifier>mpm_prefork_module</identifier>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<summary>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering <p>This Multi-Processing Module (MPM) implements a
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering non-threaded, pre-forking web server which handles request in a
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering manner very similar to the default behavior of Apache 1.3 on
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering Unix.</p>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering <p>A single control process is responsible for launching child
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering processes which listen for connections and serve them when they
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering arrive. Apache always tries to maintain several <em>spare</em>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering or idle server processes, which stand ready to serve incoming
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering requests. In this way, clients do not need to wait for a new
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering child processes to be forked before their requests can be
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering served.</p>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering <p>The <directive module="mpm_common">StartServers</directive>,
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering <directive module="prefork">MinSpareServers</directive>,
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering <directive module="prefork">MaxSpareServers</directive>, and
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering <directive module="mpm_common">MaxClients</directive> regulate how
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering the parent process creates children to serve requests. In general,
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering Apache is very self-regulating, so most sites do not need to
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering adjust these directives from their default values. Sites which
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering need to serve more than 256 simultaneous requests may need to
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering increase <directive module="mpm_common">MaxClients</directive>,
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering while sites with limited memory may need to decrease <directive
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering module="mpm_common">MaxClients</directive> to keep the server from
9473414219330b9febc1d0712bbf49ad74cf962fLennart Poettering thrashing (swapping memory to disk and back). More information
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering about tuning process creation is provided in the <a
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering href="/misc/perf-tuning.html">performance hints</a>
9473414219330b9febc1d0712bbf49ad74cf962fLennart Poettering documentation.</p>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering <p>While the parent process is usually started as root under Unix
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering in order to bind to port 80, the child processes are launched by
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering Apache as a less-privileged user. The <directive
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering module="mpm_common">User</directive> and <directive
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering module="mpm_common">Group</directive> directives are used to set
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering the privileges of the Apache child processes. The child processes
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering must be able to read all the content that will be served, but
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering should have as few privileges beyond that as possible. In
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering addition, unless <a href="/suexec.html">suexec</a> is used,
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering these directives also set the privileges which will be inherited
0d0f0c50d3a1d90f03972a6abb82e6413daaa583Shawn Landden by CGI scripts.</p>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering <p><directive module="mpm_common">MaxRequestsPerChild</directive>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering controls how frequently the server recycles processes by killing
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering old ones and launching new ones.</p>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering</summary>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<seealso><a href="/bind.html">Setting which addresses and
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering ports Apache uses</a></seealso>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<directivesynopsis location="mpm_common">
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<name>CoreDumpDirectory</name>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering</directivesynopsis>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<directivesynopsis location="mpm_common">
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<name>PidFile</name>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering</directivesynopsis>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<directivesynopsis location="mpm_common">
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<name>Listen</name>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering</directivesynopsis>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<directivesynopsis location="mpm_common">
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<name>ListenBacklog</name>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering</directivesynopsis>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<directivesynopsis location="mpm_common">
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<name>LockFile</name>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering</directivesynopsis>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<directivesynopsis location="mpm_common">
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<name>MaxRequestsPerChild</name>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering</directivesynopsis>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<directivesynopsis location="mpm_common">
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<name>MaxSpareServers</name>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering</directivesynopsis>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<directivesynopsis location="mpm_common">
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<name>MinSpareServers</name>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering</directivesynopsis>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<directivesynopsis location="mpm_common">
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<name>ScoreBoardFile</name>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering</directivesynopsis>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<directivesynopsis location="mpm_common">
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<name>SendBufferSize</name>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering</directivesynopsis>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<directivesynopsis location="mpm_common">
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<name>ServerLimit</name>
0d0f0c50d3a1d90f03972a6abb82e6413daaa583Shawn Landden</directivesynopsis>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<directivesynopsis location="mpm_common">
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<name>StartServers</name>
b7def684941808600c344f0be7a2b9fcdda97e0fLennart Poettering</directivesynopsis>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
0d0f0c50d3a1d90f03972a6abb82e6413daaa583Shawn Landden<directivesynopsis location="mpm_common">
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<name>User</name>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering</directivesynopsis>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<directivesynopsis>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<name>AcceptMutex</name>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<description>Method that Apache uses to serialize multiple children
67ab5f761f9b854d8ce85f9ee47b298e497f8bd9Tom Gundersenaccepting requests on network sockets</description>
67ab5f761f9b854d8ce85f9ee47b298e497f8bd9Tom Gundersen<syntax>AcceptMutex default|<em>method</em></syntax>
67ab5f761f9b854d8ce85f9ee47b298e497f8bd9Tom Gundersen<default>AcceptMutex default</default>
67ab5f761f9b854d8ce85f9ee47b298e497f8bd9Tom Gundersen<contextlist><context>server config</context></contextlist>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<usage>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering <p>The <directive>AcceptMutex</directive> directives sets the
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering method that Apache uses to serialize multiple children accepting
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering requests on network sockets. Prior to Apache 2.0, the method was
1b64d026af01277e332d10d9e67e2eed5a4ded28Lennart Poettering selectable only at compile time. The optimal method to use is
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering highly architecture and platform dependent. For further details,
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering see the <a href="/misc/perf-tuning.html">performance tuning</a>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering documentation.</p>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering <p>If this directive is set to <code>default</code>, then the
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering compile-time selected default will be used. Other possible
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering methods are listed below. Note that not all methods are
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering available on all platforms. If a method is specified which is
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering not available, a message will be written to the error log
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering listing the available methods.</p>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering <dl>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering <dt><code>flock</code></dt>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering <dd>uses the <code>flock(2)</code> system call to lock the
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering file defined by the <directive module="mpm_common"
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering >LockFile</directive> directive.</dd>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering <dt><code>fcntl</code></dt>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
40b8acd039cf1ea00167017e63d9c0a773002f0eMichal Schmidt <dd>uses the <code>fnctl(2)</code> system call to lock the
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering file defined by the <directive module="mpm_common"
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering >LockFile</directive> directive.</dd>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering <dt><code>sysvsem</code></dt>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
b7def684941808600c344f0be7a2b9fcdda97e0fLennart Poettering <dd>uses SySV-style semaphores to implement the mutex.</dd>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
0d0f0c50d3a1d90f03972a6abb82e6413daaa583Shawn Landden <dt><code>pthread</code></dt>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering <dd>uses POSIX mutexes as implemented by the POSIX Threads
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering (PThreads) specification.</dd>
d2e54fae5ca7a0f71b5ac8b356a589ff0a09ea0aKay Sievers </dl>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering</usage>
40b8acd039cf1ea00167017e63d9c0a773002f0eMichal Schmidt</directivesynopsis>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<directivesynopsis>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<name>MaxSpareServers</name>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<description>Maximum number of idle child server processes</description>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<syntax>MaxSpareServers <em>number</em><br /></syntax>
0d0f0c50d3a1d90f03972a6abb82e6413daaa583Shawn Landden<default>MaxSpareServers 10</default>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<contextlist><context>server config</context></contextlist>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<usage>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering <p>The <directive>MaxSpareServers</directive> directive sets the
b7def684941808600c344f0be7a2b9fcdda97e0fLennart Poettering desired maximum number of <em>idle</em> child server processes. An
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering idle process is one which is not handling a request. If there are
0d0f0c50d3a1d90f03972a6abb82e6413daaa583Shawn Landden more than MaxSpareServers idle, then the parent process will kill
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering off the excess processes.</p>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering <p>Tuning of this parameter should only be necessary on very
d2e54fae5ca7a0f71b5ac8b356a589ff0a09ea0aKay Sievers busy sites. Setting this parameter to a large number is almost
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering always a bad idea.</p>
40b8acd039cf1ea00167017e63d9c0a773002f0eMichal Schmidt</usage>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<seealso><directive module="prefork">MinSpareServers</directive></seealso>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<seealso><directive module="mpm_common">StartServers</directive></seealso>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering</directivesynopsis>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<directivesynopsis>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<name>MinSpareServers</name>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<description>Minimum number of idle child server processes</description>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<syntax>MinSpareServers <em>number</em></syntax>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<default>MinSpareServers 5</default>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<contextlist><context>server config</context></contextlist>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering<usage>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering <p>The <directive>MinSpareServers</directive> directive sets the
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering desired minimum number of <em>idle</em> child server processes. An
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering idle process is one which is not handling a request. If there are
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering fewer than MinSpareServers idle, then the parent process creates
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering new children at a maximum rate of 1 per second.</p>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering <p>Tuning of this parameter should only be necessary on very
f9ea108e7c3544c03822277a1112a48dc62f6ed4Lennart Poettering busy sites. Setting this parameter to a large number is almost
f9ea108e7c3544c03822277a1112a48dc62f6ed4Lennart Poettering always a bad idea.</p>
f9ea108e7c3544c03822277a1112a48dc62f6ed4Lennart Poettering
f9ea108e7c3544c03822277a1112a48dc62f6ed4Lennart Poettering <p>This directive has no effect on Microsoft Windows.</p>
f9ea108e7c3544c03822277a1112a48dc62f6ed4Lennart Poettering</usage>
f9ea108e7c3544c03822277a1112a48dc62f6ed4Lennart Poettering<seealso><directive module="prefork">MaxSpareServers</directive></seealso>
f9ea108e7c3544c03822277a1112a48dc62f6ed4Lennart Poettering<seealso><directive module="mpm_common">StartServers</directive></seealso>
f9ea108e7c3544c03822277a1112a48dc62f6ed4Lennart Poettering</directivesynopsis>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering</modulesynopsis>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering