我有一个默认的Apache2.2系统设置,配置如下所示的Perl CGI脚本目录:
ScriptAlias /jarvis/ "/opt/jarvis/cgi-bin/"这里没有什么特别之处,除了我的一个脚本需要超过10分钟的时间来处理,由于各种原因,这段时间内什么也不打印出来。
Apache似乎有10分钟(600秒)的时间框架来运行CGI脚本--如果在这个时间框架内没有从脚本中显示输出,那么脚本就会被杀死,一个500个响应被发送到browser/client。
信息:
[Thu Apr 23 13:57:53 2009] [warn] [client 127.0.0.1] Timeout waiting for output from CGI script /opt/jarvis/cgi-bin/jarvis.pl出现在一个系统上(Ubuntu,通过apt-get安装),而在另一个系统上(Windows,通过包下载安装)。
我的问题是-在Apache2.2中是否有任何配置可以让我在不杀死脚本的情况下运行超过10分钟的脚本?
定期写入日志消息可以避免此错误,因此每隔几分钟编写一条日志消息,可以确保长时间运行的进程不会被扼杀。我最终通过在客户机上实现一个进度条并让我的脚本编写一个“”来解决问题。经常更新另一端的酒吧。
谢谢,杰米
发布于 2009-04-23 02:32:22
TimeOut指令定义了Apache在各种情况下等待I/O的时间:
发布于 2010-09-29 16:19:42
如http://cweiske.de/tagebuch/Running%20Apache%20with%20a%20dozen%20PHP%20versions.htm所示:
FastCgiServer /var/www/cgi-bin/php-cgi-5.3.1 -idle-timeout 120空闲超时设置apache等待cgi返回的时间(秒)。
发布于 2020-06-18 06:19:03
此错误来自其后面运行查询的数据库,它的索引操作不正确或查询速度慢,请检查错误将不再出现。
https://serverfault.com/questions/277386
复制相似问题