我编写了一个程序,可以在带有某种形式的 redhat OS 的 linux 机器上运行 16 或 20 小时。如果我使用 nohup 启动它或将输出重定向到文件,它运行良好,但是当用户启动它,将其发送到后台并注销时,它会在尝试发送简单状态消息时失败(报告数字该文件导致的文件)。它抛出一个异常,大概是因为流不再有效。
一旦我们意识到为什么它对我有用,但对他不起作用,我进行了一些测试,发现与 Python、Bash 和 perl 相比,ruby 在这种行为上是独一无二的。
在这种情况下,ruby 的行为与其他脚本语言不同,有充分的理由吗?有没有办法改变它以使其表现得像其他人一样?
我很确定 C++(和 C)不关心最终用户是否可以看到他们的消息输出——但我没有为这些语言编写测试。我惊讶地发现,一旦您注销,发送到后台的作业并没有消失!所以,我过去当然从未测试过这种行为。