Answers:
disown
不会更改程序STDOUT / ERR。无论您将其重定向到何处,它们仍将转到(使用>
等)。如果您没有重定向它们,它们将继续进入您从中启动程序的终端(直到您关闭该终端,在这种情况下,它们将被丢弃)。
为了说明这一点,请在终端中运行它:
bash -c 'while true; do sleep 1; echo hi; done' &
这将每秒打印一次“ hi”(并且使您非常烦恼;-)。如果您disown
在启动程序后,“ hi”将继续。您需要找到外壳的PID(使用例如ps)并杀死它以使其停止。
编辑:
根据评论,也许您真正想要做的是在您disown
编辑程序并关闭正在运行的终端后恢复程序的输出。在以下问题中对此进行了解释:使用tcsh进行事后远程nohup(感谢庸医吉ck德)。