PHP后台进程不忽略用户中止

PHP后台进程不忽略用户中止,php,apache,http,Php,Apache,Http,存在这样的情况:一个常规Apache服务器,通过file\u get\u contents()从php发出HTTP请求,并将流上下文的超时设置为较低的值(即5秒)。被调用php端的时间限制设置为大约2小时。问题是,没有调用ignore\u user\u abort(true),但该过程仍然存在并继续完成其工作 现在的问题是:这怎么可能?我唯一的想法是文件获取内容()不会“通知”遥控器请求超时 此外,没有输出缓冲或压缩设置,也没有注册脚本关闭功能 你检查了php.ini中的默认设置了吗?我检查了,

存在这样的情况:一个常规Apache服务器,通过
file\u get\u contents()
从php发出HTTP请求,并将流上下文的超时设置为较低的值(即5秒)。被调用php端的时间限制设置为大约2小时。问题是,没有调用
ignore\u user\u abort(true),但该过程仍然存在并继续完成其工作

现在的问题是:这怎么可能?我唯一的想法是
文件获取内容()
不会“通知”遥控器请求超时


此外,没有输出缓冲或压缩设置,也没有注册脚本关闭功能

你检查了php.ini中的默认设置了吗?我检查了,默认设置是“忽略用户中止”被关闭。在httpd config中也是如此。php文档说:
php不会检测到用户中止了连接,直到尝试向客户端发送信息。简单地使用echo语句并不能保证信息被发送,请参见flush()。
因此,如果文件内容正在运行,并且在运行过程中没有打印任何内容,则进程将运行整整2个小时。@TobiasKun谢谢,这就可以解释它了!