apache / 2.4 / reference / mod-mod_systemd.html

Apache 模块 mod_systemd

Description: 为 systemd 集成提供更好的支持
Status: Extension
Module Identifier: systemd_module
Source File: mod_systemd.c
Compatibility: 在 Apache 2.4.42 及更高版本中可用

Summary

该模块为 systemd 集成提供支持。它允许在与 systemd Type=notify一起使用的服务中使用 httpd(有关更多信息,请参见systemd.service(5))。如果已加载,模块将被激活。

系统服务单元示例(生产系统可能需要更多设置)

[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

应该特别注意如何为服务配置ExecStop和/或KillMode。如果已配置,则ExecStop命令应为同步操作,该守护程序在守护程序终止时本身将退出。异步运行httpd -k stop会启动守护程序终止,因此不满足此条件。上面的示例使用KillMode=mixed,因此 systemd 发送SIGTERM来通知父进程(仅父进程)关闭。然后,如果仍在运行任何进程,则在TimeoutStopSec过去后将向整个进程组发送SIGKILL。有关更多信息,请参见systemd.kill(5)

该模块不提供对 Systemd 套接字激活的支持。

如果模块已加载,则默认情况下启用ExtendedStatus。如果未在配置中禁用ExtendedStatus,则systemctl status输出中将提供运行时负载和请求统计信息。