被拒绝的程序的 STDOUT 指向哪里?

Thr*_*awn 12 unix nohup

作为这个问题的后续,我想知道我运行的程序的 STDOUT 和 STDERRdisown -h被重定向到哪里。

sle*_*ske 11

disown不会更改程序 STDOUT/ERR。他们仍然会去你重定向他们的地方(使用>等)。如果您没有重定向它们,它们将继续进入您启动程序的终端(直到您关闭该终端,在这种情况下它们将被丢弃)。

为了说明,在终端中运行它:

bash -c 'while true; do sleep 1; echo hi; done' &
Run Code Online (Sandbox Code Playgroud)

这将每秒打印一次“hi”(并且让你非常恼火;-))。如果您disown在启动后程序,“嗨”将继续。您需要找到shell 的PID(使用例如ps)并杀死它以使其停止。

编辑:

根据评论,也许您真正想要做的是在disown编辑它并关闭它正在运行的终端后恢复程序的输出。这在这个问题中有解释:After-the-fact remote nohup with tcsh (感谢庸医堂吉诃德)。