在后台运行程序时 nohup 和 screen 不工作?

在后台运行程序时 nohup 和 screen 不工作?

我不知道为什么,但我screen在服务器上运行的命令自行停止。因此我尝试使用nohup.例如:

nohup bzcat a.bz

但跑步时nohup它给了我

nohup: ignoring input and appending output to `nohup.out'

另外,为了恢复我运行:fg这给了我:

-bash: fg: current: no such job

答案1

来自的消息nohup完全没问题。它只是解释它在做什么。当您使用 nohup 运行程序时,它不再使用您在终端上键入的内容,也不会在终端上输出任何内容。nohup将程序的输出重定向到名为nohup.out.

nohup这与在后台运行的程序有很大不同(在后台运行会是这样bzcat a.bz &)。当程序在后台运行时,它确实会忽略来自终端的输入(只有在前台运行的程序才能使用您在终端中输入的内容,这就是为什么它被称为“前台”进程,因为它是您实际交互的进程)与)但它确实输出到终端。可以在 nohup 模式和后台运行程序。事实上,通常都是这样nohup使用的。如果您有nohup一个程序但没有在后台启动它,则您无法调用fg它,因为它实际上不是后台的。它只是不输出到终端。

nohup允许您以忽略信号的模式运行程序HUPHUP当您关闭终端时,终端通常会发送信号。因此,当您关闭启动它的终端时,以 nohup 模式在后台运行的程序将不会停止。

相关内容