以下代码在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.或者原因可能在其他地方?