【发布时间】:2010-04-08 22:33:25
【问题描述】:
我有一个命令行 PHP 脚本,它使用带有 foreach 的数组的每个成员来运行 wget 请求。这个 wget 请求有时可能需要很长时间,所以我希望能够设置一个超时来杀死脚本,例如,如果它超过 15 秒。我禁用了 PHP 安全模式并在脚本的早期尝试了 set_time_limit(15),但它会无限期地继续。 更新:感谢 Dor 指出这是因为 set_time_limit() 不尊重 system() 调用。
所以我试图找到其他方法在执行 15 秒后终止脚本。但是,我不确定是否可以在同时处于 wget 请求中间时检查脚本的运行时间(do while 循环不起作用)。也许 fork 一个带有计时器的进程并设置它在设定的时间后杀死父进程?
感谢您的任何提示!
更新: 下面是我的相关代码。 $url 是从命令行传递的,是一个包含多个 URL 的数组(很抱歉最初没有发布):
foreach( $url as $key => $value){
$wget = "wget -r -H -nd -l 999 $value";
system($wget);
}
【问题讨论】:
标签: php windows linux command-line