我有一个默认的 Apache 2.2 系统设置,其中有一个 Perl CGI 脚本目录,配置如下:
ScriptAlias /jarvis/ "/opt/jarvis/cgi-bin/"
Run Code Online (Sandbox Code Playgroud)
除了我的一个脚本需要 10 多分钟来处理之外,这里没有什么特别的,并且由于各种原因,在此期间没有打印任何内容。
Apache 似乎有 10 分钟(600 秒)的时间范围来运行 CGI 脚本 - 如果在此时间范围内脚本没有出现任何输出,则脚本将被终止,并向浏览器/客户端发送 500 响应。
消息:
[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
Run Code Online (Sandbox Code Playgroud)
出现在一个系统(Ubuntu,通过 apt-get 安装)的日志中,但不会出现在另一个系统(Windows,通过包下载安装)上。
我的问题是 - Apache 2.2 中是否有任何配置可以让我运行脚本超过 10 分钟而不会被杀死?
编辑
定期写入日志消息可以避免此错误 - 因此每隔几分钟写入一次日志消息可确保长时间运行的进程不会被终止。我最终通过在客户端上实现一个进度条并让我的脚本编写一个“.”来解决我的问题。每隔一段时间更新另一端的栏。
谢谢,杰米
小智 6
该超时指令定义时间的Apache的长度将等待在各种情况下的I / O:
归档时间: |
|
查看次数: |
38091 次 |
最近记录: |