Apache HTTP Server Version 2.4

Apache > HTTP Server > Documentation > Version 2.4 > Modules

# Apache Module mod_systemd

Description: | Provides better support for systemd integration
Status: | Extension
Module Identifier: | systemd_module
Source File: | mod_systemd.c
Compatibility: | Available in Apache 2.4.42 and later

### Summary

This module provides support for systemd integration. It allows httpd to be used in a service with the systemd `Type=notify` (see systemd.service(5) for more information). The module is activated if loaded.

### Example of systemd service unit (more settings are probably needed for production systems)

    [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

Special attention should be given to how `ExecStop` and/or `KillMode` are configured for the service. If configured, an `ExecStop` command should be a synchronous operation which itself exits when the daemon has terminated. Running `httpd -k stop` asynchronously initiates daemon termination, so does not satisfy this condition. The example above uses `KillMode=mixed` so that systemd sends `SIGTERM` to signal the parent process (and only the parent) to shut down. The entire process group is then sent `SIGKILL` after `TimeoutStopSec` elapses, if any processes are still running. See systemd.kill(5) for more information.

This module does not provide support for Systemd socket activation.

`ExtendedStatus` is enabled by default if the module is loaded. If `ExtendedStatus` is not disabled in the configuration, run-time load and request statistics are made available in the `systemctl status` output.

### Directives

This module provides no directives.

### Bugfix checklist

- httpd changelog
- Known issues
- Report a bug