![在后台运行程序时 nohup 和 screen 不工作?](https://linux22.com/image/31668/%E5%9C%A8%E5%90%8E%E5%8F%B0%E8%BF%90%E8%A1%8C%E7%A8%8B%E5%BA%8F%E6%97%B6%20nohup%20%E5%92%8C%20screen%20%E4%B8%8D%E5%B7%A5%E4%BD%9C%EF%BC%9F.png)
我不知道为什么,但我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
允许您以忽略信号的模式运行程序HUP
。HUP
当您关闭终端时,终端通常会发送信号。因此,当您关闭启动它的终端时,以 nohup 模式在后台运行的程序将不会停止。