以下代码在 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(' '); flush();
还不时添加,以确保 apache 不会因为没有输出而杀死脚本(它出现在 apache 错误日志中)。
有趣的提示是,当我ignore_user_abort(1);
在开头添加时 - 脚本不会停止。
我知道还有其他方法可以完成脚本并收集输出,但我正在寻找的是 wget 放弃下载的原因,即使超时设置为 0。或者原因可能在其他地方?