为什么php脚本可能会停止?

为什么php脚本可能会停止?,php,apache,timeout,Php,Apache,Timeout,我正在用php运行一个很长的任务。这是一个网站爬虫,它必须有礼貌,每页睡眠5秒,以防止服务器过载。脚本以以下内容开头: ignore_user_abort(1); session_write_close(); ob_end_clean(); while (@ob_end_flush()); set_time_limit(0); ini_set('max_execution_time',0); 几个小时后(3-7小时之间),脚本在没有任何可见原因的情况下死亡。 我查过了 apache错误日志(

我正在用php运行一个很长的任务。这是一个网站爬虫,它必须有礼貌,每页睡眠5秒,以防止服务器过载。脚本以以下内容开头:

ignore_user_abort(1);
session_write_close();
ob_end_clean();
while (@ob_end_flush());
set_time_limit(0);
ini_set('max_execution_time',0);
几个小时后(3-7小时之间),脚本在没有任何可见原因的情况下死亡。 我查过了

  • apache错误日志(无)
  • php_errors.log(无)
  • 错误输出(10 578 467b调试输出,无错误)
  • 内存消耗(稳定,从
    memory\u get\u usage(true)
    每5秒检查一次,大约3百万,限制设置为512百万)
这不是浏览器,因为我使用wget和chrome来检查,原因类似。 输出每隔2-3秒发送到浏览器,所以我不认为这是错误+我忽略用户中止


有没有其他地方可以让我查一下以发现问题

我认为脚本的其余部分有问题,而不是Apache


尝试使用轻型探查器(如和)对应用程序进行评测,可能就是这样。

我认为脚本的其余部分存在问题,而不是Apache


尝试使用轻型探查器(如)对应用程序进行评测,并记录,可能是这样。

如果它在apache容器(mod_php)内运行,我可以想象它最终会在不通知您的情况下终止进程:)您可以独立运行(在apache之外)吗?分部分运行如何?扫描500-1000个链接,然后使用一些参数调用同一个脚本,以offseti开始这是由cron控制的吗?如果是这样的话,我建议强制脚本运行一段设定的时间,然后使用cron在不久之后重新启动它(如果您无法发现是什么正在杀死它并阻止它的话)。phpinfo显示CGI/FastCGI,所以我猜是suPHP。我不想通过cron运行它,因为它是任务驱动的工具。进程的前几秒对用户很重要-脚本应该使用不同的配置重新启动,还是继续运行。等待cron启动不是很有用。如果它在apache容器(mod_php)中运行,我可以想象它最终会在不通知您的情况下终止进程:)您可以独立运行它(在apache之外)吗?分部分运行如何?扫描500-1000个链接,然后使用一些参数调用同一个脚本,以offseti开始这是由cron控制的吗?如果是这样的话,我建议强制脚本运行一段设定的时间,然后使用cron在不久之后重新启动它(如果您无法发现是什么正在杀死它并阻止它的话)。phpinfo显示CGI/FastCGI,所以我猜是suPHP。我不想通过cron运行它,因为它是任务驱动的工具。进程的前几秒对用户很重要-脚本应该使用不同的配置重新启动,还是继续运行。等待cron启动不是很有用。我不确定这是否可行。脚本应该以“完成”消息或某种错误结束。我仔细检查了整个文件中的
exit
die
return
,它们不会给出任何消息,但没有消息。我已经检查了内存使用情况(阅读问题)。我不确定这是否可行。脚本应该以“完成”消息或某种错误结束。我仔细检查了整个文件中的
exit
die
return
,它们不会给出任何消息,但没有消息。我已经检查了内存使用情况(阅读问题)。