【发布时间】:2011-11-14 16:16:07
【问题描述】:
我编写了一个程序,它可以在带有某种形式的 redhat 操作系统的 linux 机器上运行 16 或 20 小时。如果我使用 nohup 启动它或将输出重定向到文件,它运行良好,但是当用户启动它,将其发送到后台并注销时,它会在尝试发送简单的状态消息时失败(报告数字该文件导致的文件)。它抛出一个异常,大概是因为流不再有效。
一旦我们意识到为什么它对我有用,但对他没有用,我进行了一些测试,发现与 Python、Bash 和 perl 相比,ruby 在这种行为上是独一无二的。
在这种情况下,ruby 的行为与其他脚本语言不同,是否有充分的理由?有没有办法改变它的行为?
我很确定 C++(和 C)不关心最终用户是否可以看到他们的消息输出——但我没有为这些语言编写测试。我惊讶地发现,一旦您退出,发送到后台的作业并没有消失!所以,我过去当然从未测试过这种行为。
【问题讨论】:
-
你有什么异常引发吗?
-
是的,虽然我没有写出来——所以我只知道抛出了一个异常。这仅发生在 Ruby 中。所有其他测试都不会抛出异常。
标签: ruby background ioexception broken-pipe