启动 Apache 作为服务,使用 SIGWINCH 退出

启动 Apache 作为服务,使用 SIGWINCH 退出

运行时,service apache start我在日志文件中看到以下条目:

[mpm_event:notice] [pid 1906:tid XXX] AH00489: Apache/2.4.23 (Unix)
                         OpenSSL/1.0.2g PHP/7.0.9 configured -- resuming normal operations
[core:notice] [pid 1906:tid XXX] AH00094: Command line: '/usr/sbin/httpd'
[mpm_event:notice] [pid 1906:tid XXX] AH00492: caught SIGWINCH, shutting down gracefully

并且服务apache没有启动?我可以在互联网上找到SIGWINCH[ Window size change] 的含义,但在这种情况下它并没有真正帮助我。

文件/etc/systemd/system/apache.service

[Unit]
Description=The Apache Webserver [FaF Compiled]
After=network.target nss-lookup.target time-sync.target
[email protected] plymouth-quit.service xdm.service

[Service]
Type=notify
PrivateTmp=true
ExecStart=/usr/sbin/httpd -k start
ExecReload=/usr/sbin/httpd -k graceful
ExecStop=/usr/sbin/httpd -k graceful-stop
KillMode=mixed

[Install]
WantedBy=multi-user.target
Alias=httpd.service apache.service

在 SLES 12 SP1 上运行。我自己编译了Apache。启动它apachectl -k start效果很好,我可以访问并运行 PHP 代码。

我的问题: 我做错了什么,apache服务没有启动。我已经启用它了systemctl enable apache。这是输出:

ln -s '/usr/lib/systemd/system/apache2.service' '/etc/systemd/system/httpd.service'
ln -s '/usr/lib/systemd/system/apache2.service' '/etc/systemd/system/apache.service'
ln -s '/usr/lib/systemd/system/apache2.service' '/etc/systemd/system/multi-user.target.wants/apache2.service'

答案1

systemd指示 Apache 停止graceful-stop,这会生成一个SIGWINCH信号,从而生成日志caught SIGWINCH, shutting down gracefully。 (该SIGWINCH信号被 Apache(滥用)使用)

IMO,有可能出现另一个错误,包括配置错误,使其停止,并且您正在查看相关症状,这是正常行为。

我建议仔细阅读您的 Apache 错误日志,通常默认情况下位于 SLES 目录下/var/log/apache2

答案2

我发现了类似的问题报告红帽。已关闭,状态为“NOTABUG”。最终确认为错误配置。

图片 #1 1


图片 #2 2


图片 #3 3


更新

我发现还有一个类似的问题报告服务器故障。答案中还有一个,如下图所示。

图片 1/1在此输入图像描述

答案3

来自评论红帽错误报告链接自托马斯的回答

如果你想让 systemd 识别出 httpd 已经成功启动,你需要运行 00-systemd.conf 。

我运行了这个并且它起作用了:

ln -sr /etc/httpd/conf.modules.d/00-systemd.conf /etc/httpd/conf.d/00-systemd.conf
systemctl restart httpd

我使用的是 Amazon Linux 2(可能也适用于 RHEL/Centos 7)。

答案4

我在 AWS Cloud9 控制台中遇到了此问题。我认为这SIGWINCH本身就是问题所在,但后来发现 AWS Cloud 9 中的默认设置会在 30 分钟后终止实例。这会触发SIGWINCH,然后告诉 Apache 关闭。

我对此一无所知,我花了两天时间才弄清楚。我希望它可以节省某人的时间。

请务必调整“停止我的环境”设置

相关内容