如何防止wget在长php脚本上停止

如何防止wget在长php脚本上停止,php,timeout,wget,Php,Timeout,Wget,以下代码在PHP中执行 shell_exec('wget -q -T 0 -b -O "'.dirname(__FILE__).'/logs/log.txt" "'.$_SERVER['SERVER_NAME'].'/my/script.php" > /dev/null 2>&1'); 几个小时后,脚本就无缘无故地停止了。log.txt中没有错误,apache错误中也没有错误。 这些线路应防止此类行为: session_write_close(); ini_set('max

以下代码在PHP中执行

shell_exec('wget -q -T 0 -b -O "'.dirname(__FILE__).'/logs/log.txt" "'.$_SERVER['SERVER_NAME'].'/my/script.php" > /dev/null 2>&1');
几个小时后,脚本就无缘无故地停止了。log.txt中没有错误,apache错误中也没有错误。 这些线路应防止此类行为:

session_write_close();
ini_set('max_execution_time',0);
set_time_limit(0);
我还添加了echo“”;脸红为了确保apache不会因为没有输出而终止脚本,它会不时出现在apache错误日志中

有趣的提示是,当我添加ignore\u user\u abort1时;在开始时-脚本不会停止


我知道还有其他方法可以完成脚本并收集输出,但我要寻找的是wget放弃下载的原因,即使超时设置为0。或者原因可能在别处?

如果可以使用shell_exec,为什么不使用shell_exec'/usr/bin/php/path/to/script.php';正如您可能读到的,我对将wget更改为其他解决方案不感兴趣,而是对寻找实际原因感兴趣。当脚本位于不同的服务器上时,通过cli运行php将不起作用,在我的特殊情况下,与wget相比还有其他缺点。是wget终止了连接,还是脚本本身停止了连接?@Smok打开wget调试报告-debug,显然将输出记录在某处>debug.txt,看看发生了什么。IMO这是唯一的方法,因为wget有很多可能中止。这也可能是www服务器的问题