【问题标题】:How to increase the execution time in perl?如何增加perl中的执行时间?
【发布时间】:2018-05-10 06:06:55
【问题描述】:

我正在尝试在 apache2 服务器上运行 Perl CGI 脚本(名为 script.cgi),但在执行了两三个命令后,它会因日志文件中的错误而停止:

“AH01215: 致命错误:: /usr/lib/cgi-bin/script.cgi”

“AH01215:程序停止!!:/usr/lib/cgi-bin/script.cgi”

它成功执行了脚本中提到的前三个外部命令,但在第四个外部命令失败,因为生成完整结果需要更多时间。我还尝试打印命令的输出,以便知道命令是否正在执行,我发现它正在执行但在特定时间段后失败。

我尝试使用 Time::Out 模块,但它也不起作用。外部命令在反引号(``) 中执行,因为 system() 没有捕获输出并且 exec() 不等待命令完成并开始执行下一个命令。

有什么方法可以修改 apache2 中的超时设置吗?因为我也尝试过,但我找不到任何用于此目的的文件或模块。请帮帮我。

【问题讨论】:

  • 您看到的确切错误消息是什么? “失败的!!!”和“程序停止!!!”不是您在问题中提到的任何软件的标准错误消息。
  • AH01215: Fatal Error:: /usr/lib/cgi-bin/script.cgi AH01215: Program halted !!: /usr/lib/cgi-bin/script.cgi 我已经编辑了这个问题也。
  • HTTP 不是为您正在做的事情而设计的。您需要在后台启动这些命令并允许后续访问以跟踪进度的东西。

标签: perl apache2 cgi execution-time


【解决方案1】:

在 httpd.conf 中有一个 Timeout 指令。它通常默认为 60 秒。

【讨论】:

  • 但是apache2中没有httpd.conf文件。
  • 感谢大家的回答。我发现问题出在二进制文件的版本上。通过 apt-get 安装的版本与源代码的版本不同。我删除了源代码二进制文件,它起作用了!
  • @user8392790 它可能被命名为 apache2.conf。
猜你喜欢
  • 1970-01-01
  • 2018-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-15
  • 2020-07-14
相关资源
最近更新 更多