Apache通知抓住了SIGTERM,关闭了php循环脚本

时间:2014-01-12 01:28:07

标签: php apache plesk internal-server-error mediatemple

我有一个来自MediaTemple的DV 4.0。

当我运行一个需要循环超过5000次的php文件脚本时,我收到了“500内部服务器错误”。

代码似乎是因为当我用200时间循环执行时,会打印结果。

我的“max_input_time”,“max_execution_time”,“default_socket_timeout”以及所有其他php参数都不是问题(我猜,所有设置为9000且memory_limit为-1)

我明白了:

[Sat Jan 11 19:25:22 2014] [notice] caught SIGTERM, shutting down

这是因为apache重启。 我的问题是:    如何在我的脚本中循环超过5000次而不会崩溃我的系统; - )

谢谢

1 个答案:

答案 0 :(得分:6)

你的问题是如何循环超过5000次。

循环5000或5亿次不是问题。你在其他地方有问题。

SIGTERM用于重启Apache(如果在init中设置为自动重启):http://httpd.apache.org/docs/2.2/stopping.html

您看到的日志条目应该在那里,因为SIGTERM就是出于此目的。也许,apache没有崩溃,但你的数据有问题或者执行时间不足。

它可能是自定义PHP模块或代码。在发生故障时查看apache访问/错误日志。不要忘记打开错误登录。它可以帮助您找出问题所在。是吗?如果在DEV模式下,总是会出现错误报告!!!

如果它真的崩溃了,甚至没有提供静态内容,那么这听起来像某种线程/连接耗尽问题。但是,您的代码似乎有问题并且您可以抑制错误。

如果您确定您的身边/代码没有任何问题(如果它在另一个系统上运行),您可能需要重新安装apache和php,它将解决有任何损坏的文件或您错误配置它。