在客户端(浏览器)关闭连接后,如何让 Apache 终止其产生的 CGI?
我有几个 CGI 执行长时间运行的操作,每 15 秒发送一次输出。浏览器关闭连接后,CGI(及其后代)应该被正确终止,而不是在我的系统中徘徊并占用宝贵的 Apache 插槽。
最好让 Apache 杀死它们。如果不行,我想知道 CGI 是否有办法检测与浏览器的连接是否已经断开。
编辑:显然,CGI 将关闭其 STDOUT。写入时,它们将收到 SIGPIPE 信号并可以采取相应行动(通常它们会忽略此信号)。在 Perl 中,您可以执行以下操作:
print "fresh output\n" or die "apparently my audience has left the building";
所以问题仍然存在:Apache 能否检测到破裂的管道并清理其垃圾?
在带有 Apache 2.2.20 的 Debian 上运行,并采用正常的 suexec 机制。
谢谢!