阻止后台进程从写入控制台

时间:2018-01-25 15:48:31

标签: linux bash

在Linux的bash中,

我知道如何启动一个长时间运行的进程并将其发送到后台。 例如run.sh,然后按Control+Z,然后输入bg 1

有时我想继续做其他工作,但这个后台流程会继续打印到我的Putty conssole - 这很烦人。

我知道我可以启动run.sh &> /tmp/run.sh.log因此将所有输出都输出到/tmp/run.sh.log但有时我忘了这样做。

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

2 个答案:

答案 0 :(得分:1)

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

stty tostop

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

要让流程再次写入,您可以使用fg

可以找到原始来源here

答案 1 :(得分:0)

Control + Z正在停止你的工作(就像暂停它一样),这就是你没有看到输出的原因。 fg 1让它重新获得 禁止所有消息将所有内容重定向到/ dev / null

./your_script.sh 2>&1 &