我知道如何重定向输出以及如何在bash中抑制它们。现在,假设我不小心忘了输出重定向部分的命令(例如追加2>&1
或> /tmp/mystdout
)和我的后台进程已经运行一段时间,我还可以更改为stdout
与stderr
正在写入?我真的不想杀死并重新启动该应用程序。
就像吉尔斯在评论中所要求的那样,我要在以下特定情况下专门弄弄它:
- 错误的输出文件
- 忘记重定向
stderr
到stdout
或两者结合
例如,我正在运行Apache,并且可以看到文件描述符:
/proc/8019/fd/0 -> /dev/null
/proc/8019/fd/1 -> /dev/null
/proc/8019/fd/2 -> /var/log/apache2/error.log
切换到另一个终端?还是要一个文件?如果您对附加到当前终端或新的屏幕会话感到满意,请参阅如何放弃正在运行的进程并将其关联到新的屏幕外壳?
—
吉尔(Gilles)“所以,别再邪恶了”