| <?xml version="1.0"?> |
| <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> |
| <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?> |
| <!-- $LastChangedRevision: 1872770 $ --> |
| |
| <!-- |
| 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> |