使用SIGWINCH退出Apache服务退出


12

运行时,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
Before=getty@tty1.service 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'

怎么SIGWINCH致命的?默认操作是放弃信号。
2016年

Answers:


2

systemd正在指示Apache停止运行graceful-stop,并生成SIGWINCH信号,并因此生成log caught SIGWINCH, shutting down gracefully。(该SIGWINCH信号由Apache使用)

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

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


1

我在RedHat上发现了类似的问题。已关闭,状态为“ NOTABUG”。最终被认为是错误的配置。

img#1 1个


img#2 2


img#3 3


更新

我发现了关于serverfault的另一个类似问题。下图中还有一个答案。

img 1/1在此处输入图片说明


-DFOREGROUND对我的情况没有帮助。Apache确实启动了,但是它没有返回service,因此service抱怨apache2.service start operation timed out. Terminating.
Peter VARGA '16

您是否已阅读链接中的主题?

1
我放弃。我了解这种情况,但不知道如何解决。我发现,当我删除ExecReload=/usr/lib/systemd/system/apache2.service那么SIGWINCH不发送,但随后Apache不启动-在日志中没有错误讯息,没有什么。它只是在启动后立即退出。现在,我实现了apachectl -k start在系统启动时作为cron作业运行的hack 。我可以使用重启Apache apachectl -k restart。我稍后再试;可能是我得到了一些新想法。
Peter VARGA '16

我发现了另外一个。查看更新。

0

Tomasz的答案链接到的Red Hat错误报告的评论中:

如果想让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上运行)。


感谢您的信誉,但是,...您从哪里得到的?
G-Man说'恢复莫妮卡'

@ G-Man我已经编辑了此答案以正确地引用该报价。
Anthony Geoghegan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.