![nohup 和 nohup 在屏幕上有区别吗?](https://linux22.com/image/87732/nohup%20%E5%92%8C%20nohup%20%E5%9C%A8%E5%B1%8F%E5%B9%95%E4%B8%8A%E6%9C%89%E5%8C%BA%E5%88%AB%E5%90%97%EF%BC%9F.png)
我目前正在Linux集群上运行mathematica,我希望即使我注销,作业也能稳定运行。所以我用nohup
.但是,我发现有时nohup
会在没有任何标志的情况下终止(我在输出文件中看不到任何错误消息,它只是在计算中间停止。)
这可能是由于Mathematica。但我想也许我应该尝试一下screen
。所以我就提出了这个问题。nohup 和 nohup in a screen 有什么区别?会nohup
比单纯的在屏幕里面更稳定吗nohup
?
答案1
它不会产生真正的区别,因为如果您运行screen
(或tmux
) 并且断开连接,无论您是否使用 nohup 启动它,都会有 NOHUP 信号发送到您的应用程序。
我建议您尝试使用screen
/tmux
并直接启动程序而不使用nohup
.然后强制断开连接,重新登录并重新连接到上一个会话。您将看到您的会话继续工作,并且您可以看到其输出(在缓冲区中向后滚动需要一些特殊命令),并且您(可能)可以通过按Ctrl+中断正在运行的程序C,本质上就像您从未断开连接一样。
因此,当您的原始程序以某种方式意外终止并希望写入nohup.out
原因时,现在输出将进入screen
会话缓冲区。但是,如果它在使用时不输出任何内容,nohup
那么在内部运行时将无法获得更多信息screen
。尽管运行在“under”下,但它并不是nohup
终止,而是你的程序终止了nohup
。