linux - 如何使 apache 在执行 cgi 时跳过特定的 stdout 行或停止共享库打印到 stdout

标签 linux apache apache2 shared-libraries dynamic-linking

我的 apache 服务器执行一个 cgi bin 并读取输出到 stdout 的行。问题是,每次执行 cgi-bin 时,都会出现一些由于 API 动态库加载而导致的行。 Apache 现在无法将这 3 行与启动我的流式传输的 HTTP 请求区分开来。 有没有办法让 apache 跳过阻止它工作的行或阻止共享库打印它的负载?

最佳答案

如果您的网站每秒执行的请求少于几个,您可以通过使用 shell 脚本包装 CGI 来使用一个简单的 hack 来过滤掉问题行:

-- 将下面的代码放入新的 cgi 脚本中并确保 chmod +x -- 通过在 shell 中手动运行它来测试 --

#! /bin/bash
/path/to/old-cgi | egrep -v troublestring1\|troublestring2\|troublestring3 

您必须确保故障字符串足够独特,永远不会合法地出现在您的实际输出中。如果您找不到这样的字符串,您可能需要一个更复杂的解析脚本来代替 egrep 过滤器。

关于linux - 如何使 apache 在执行 cgi 时跳过特定的 stdout 行或停止共享库打印到 stdout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37078745/

相关文章:

perl - 如何使用 mod_perl 让 Apache 处理 .pl (Perl) 文件?

php - 允许 PHP 一切/给予 PHP 用户 root 权限

linux - apache2 网络代理服务器上的多个 NIC

python-2.7 - 我的 Apache WSGI Flask 网络应用程序无法导入其内部 python 模块

php - 跟踪用户的带宽

node.js - Nodejs 重定向 url 到 tomcat 服务器

java - 将文件从 windows Java 应用程序移动到 linux box

database - 大数据查询的 Hive 替代方案

linux - 内核模块 kvm.ko 和 kvm-intel.ko 都加载时缺少/dev/kvm

linux - GDB 附加到可执行文件被删除的进程