首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache 2中的“捕捉SIGWINCH”错误是什么?

Apache 2中的“捕捉SIGWINCH”错误是什么?
EN

Stack Overflow用户
提问于 2009-04-23 08:56:59
回答 4查看 85.1K关注 0票数 39

我的服务器(ubuntu8.04)灯运行drupal 6,当有高流量时,它停止服务页面。重新启动apache2将无法工作,因此我必须重新启动服务。

我在apache2 error.log中找到了这条消息

注意抓住了SIGWINCH,优雅地关闭了

我还注意到,当apache停止响应时,apache2的进程id大约是12000。

更新

正如您所指出的,捕捉到的SIGWINCH是apache服务重新启动的通知。我和最大的客户玩了一圈然后活了下来。我把MaxClients设置得太低了,所以我得到了一个“服务器到达MaxClients设置,考虑提高MaxClients设置”错误,但是修复了这个错误。

关于PID,我的安装已经安装了预分叉模块,所以在到达MaxRequestPerChild之后,它会回收子进程。这就是PID周期性上升的原因。至今还没有弄清楚为什么apache会在一段时间后停止响应。

同时,会尝试提高MaxRequestPerChild,这样PID就不会那么快地达到PID最大值。当前的限制是32768 (这是新的debian和ubuntu安装的标准)。

下面是日志中的更多内容:

星期五4月24日01:48:56 2009抓住SIGWINCH,优雅地关闭 星期五4月24日01:50:07 2009 Apache/2.2.8 (Ubuntu) PHP/5.2.4-2 ubuntu5.3配置了Suhosin修补程序--恢复正常操作 2009年4月24日(星期五) 17:13:35客户端195.70.62.131客户端发送HTTP/1.1请求时没有主机名(见RFC2616第14.23节):/w00tw00t.at.ISC.SANS.DFind:) 2009年4月24日(星期五) 17:36:00客户端212.188.33.4客户端发送HTTP/1.1请求而没有主机名(见RFC2616第14.23节):/w00tw00t.at.ISC.SANS.DFind:) Sat 25 20:05:07 2009客户端84.243.222.12请求中的无效URI获得HTTP/1.1 HTTP/1.1 2009年4月25日星期六20:05:12客户端84.243.222.12脚本未找到或无法统计: /usr/lib/cgi-bin/twiki 2009年4月25日星期六20:05:12客户端84.243.222.12脚本未找到或无法统计: /usr/lib/cgi-bin/wiki 2009年4月25日星期六20:05:12客户端84.243.222.12脚本未找到或无法统计: /usr/lib/cgi-bin/wikis Sat 25 21:46:46 2009 client 211.68.23.167请求中的无效URI GET HTTP/1.1 HTTP/1.1 Sun 4月26日06:13:47 2009客户端86.39.154.89发送HTTP/1.1请求时没有主机名(见RFC2616第14.23节):/w00tw00t.at.ISC.SANS.DFind:) 太阳04月26日06:53:07请求优雅重启,做重启

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-04-24 20:43:29

在Ubuntu上启动和停止Apache时,在某些情况下使用SIGWINCH。如果我在我的Ubuntu8.10服务器上执行sudo apache2ctl graceful-stop,我可以在日志中得到以下内容:

代码语言:javascript
复制
[Fri Apr 24 22:41:15 2009] [notice] caught SIGWINCH, shutting down gracefully

据我所知,SIGWINCH还被一些服务使用,这些服务需要在旋转日志、夜间作业等时重新启动Apache。

这并不能解释您当前存在的问题,但我认为可能是服务器上正在重新启动Apache的其他问题,或者可能与您的问题无关。

如果可以的话,尝试张贴更多的日志文件,分析起来会容易得多:)

票数 17
EN

Stack Overflow用户

发布于 2015-09-18 08:19:52

SIGWINCH

事实上,@Stefano是对的: SIGWINCH的意思是信号窗口更改,当终端检测到窗口大小的变化时自动发送,以便重新绘制。

SIGWINCH for apache2

但是不幸的是,apache2处理错误地使用了这个信号(就像他们转移了它的第一个意义),但是对于他们的防御,他们似乎没有选择,因为缺乏信号而不得不求助于此(参见错误报告)。他们的一个假设是,apache2过程总是处于背景中。所以@mikl也是完全正确的。

所以,要检查什么?

  • 重新启动apache2的任何自动原因(cron服务,apt-获取相关服务的安装.)
  • 否则,在打开的tty中在前台运行apache2吗?如果是,这是不建议(唉),您可能会很容易地点击这个SIGWINCH优雅关闭相当容易时,调整您的控制终端。
票数 50
EN

Stack Overflow用户

发布于 2009-04-23 09:07:21

呃?如果我没记错的话,SIGWINCH是一个信号,当终端窗口的大小发生变化时,SIGWINCH会发送给终端应用程序(这样应用程序就可以自己调整大小)。通常由ncurses应用程序使用。

这很奇怪。这个信息会给你更多的提示吗?

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/780853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档