防止后台进程写入控制台

Ron*_*adi 2 linux bash

在Linux的bash中,我知道如何启动一个长时间运行的进程并将其发送到后台。

例如run.sh,然后按Control+Z,然后键入bg 1

有时我想继续做其他工作,但这个后台进程不断打印到我的Putty控制台 - 这很烦人。

我知道我可以开始将run.sh &> /tmp/run.sh.log所有输出泵入/tmp/run.sh.log,但有时我只是忘记这样做。

如何阻止后台进程打印到我的控制台?

Any*_*ine 8

如果您已经启动该过程并希望停止打印到stdout,同时仍保持其运行,您可以使用:

stty tostop
Run Code Online (Sandbox Code Playgroud)

当您给出stty参数时tostop,它会停止尝试写入的后台进程stdout

要使进程能够再次写入,您可以使用fg.

原始来源可以在这里找到