linux - 某些 Linux 错误消息未被重定向到带有 2>x 的文件

标签 linux io-redirection setrlimit

我有一个沙盒程序,它使用 setrlimit() 来限制在其控制下运行的另一个程序的输出文件大小,我是这样运行的:

sandbox -max 2048 /usr/bin/mono --debug myprogram.exe <p1 >r1 2>r2

“-max 2048”开关告诉沙箱将输出限制为最大 2K 字节。

如果“myprogram.exe”内部发生异常,或者如果我故意从“myprogram.exe”内部向 stderr 写入一些内容,它会按预期出现在 r2 中。但是,当超过文件大小限制时,我收到此错误消息:

File size limit exceeded (core dumped)

但它并没有像预期的那样被写入错误日志 r2,而是出现在控制台上。谁能告诉我为什么会这样?有什么方法可以安排将此消息与其他所有内容一起写入 r2 吗?

最佳答案

这看起来像是 shell 而非程序会报告的错误。 shell 的 stdout/stderr 没有被重定向到任何地方。

关于linux - 某些 Linux 错误消息未被重定向到带有 2>x 的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25312767/

相关文章:

windows - 为什么在其搜索字符串中包含变量扩展的 `findstr` 在涉及管道时会返回意外结果?

linux - 有没有办法在linux内核中找到映射到进程虚拟内存区域的文件的文件名?

共享 Linux Web 服务器 (JustHost) 上的 JavaVM

c++ - 4k * 4K float 的 mmap 导致段错误

ksh - 将 jil 错误输出重定向到日志文件

linux - 打印 STDOUT/STDERR 并将它们写入 Bash 中的文件?

c - 这是编辑 RLIMIT_NPROC 值的更好方法

linux - 限制核心文件大小

setrlimit 可以用于在一段时间内强制执行资源使用限制吗?

linux - 从 PID 获取 struct cred