blob: e3e533bf8337d1b638633622c855faa332a81c62 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
<!-- $LastChangedRevision$ -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<modulesynopsis metafile="mod_systemd.xml.meta">
<name>mod_systemd</name>
<description>Provides better support for systemd integration</description>
<status>Extension</status>
<sourcefile>mod_systemd.c</sourcefile>
<identifier>systemd_module</identifier>
<compatibility>Available in Apache 2.4.42 and later</compatibility>
<summary>
<p>This module provides support for systemd integration. It allows
httpd to be used in a service with the systemd
<code>Type=notify</code> (see <a
href="https://www.freedesktop.org/software/systemd/man/systemd.service.html">systemd.service(5)</a>
for more information). The module is activated if loaded.</p>
<example>
<title>Example of systemd service unit (more settings are probably needed for production systems)</title>
<pre>
[Unit]
Description=The Apache HTTP Server
After=network.target
[Service]
Type=notify
ExecStart=/usr/local/apache2/bin/httpd -D FOREGROUND -k start
ExecReload=/usr/local/apache2/bin/httpd -k graceful
KillMode=mixed
[Install]
WantedBy=multi-user.target
</pre>
</example>
<p>Special attention should be given to how <code>ExecStop</code>
and/or <code>KillMode</code> are configured for the service. If
configured, an <code>ExecStop</code> command should be a
<em>synchronous operation</em> which itself exits when the daemon
has terminated. Running <code>httpd -k stop</code>
<em>asynchronously</em> initiates daemon termination, so does not
satisfy this condition. The example above uses
<code>KillMode=mixed</code> so that systemd sends
<code>SIGTERM</code> to signal the parent process (and only the
parent) to shut down. The entire process group is then sent
<code>SIGKILL</code> after <code>TimeoutStopSec</code> elapses, if
any processes are still running. See <a
href="https://www.freedesktop.org/software/systemd/man/systemd.kill.html">systemd.kill(5)</a>
for more information.</p>
<p>This module does not provide support for Systemd socket activation.</p>
<p><directive module="core">ExtendedStatus</directive> is
enabled by default if the module is loaded. If <directive
module="core">ExtendedStatus</directive> is not disabled in
the configuration, run-time load and request statistics are made
available in the <code>systemctl status</code> output.</p>
</summary>
</modulesynopsis>
|