查看重定向到 dev/null 的进程输出 - 撤消重定向

Posted

技术标签:

【中文标题】查看重定向到 dev/null 的进程输出 - 撤消重定向【英文标题】:View output of process redirected to dev/null - undo redirection 【发布时间】:2021-04-14 19:07:20 【问题描述】:

我已将几个进程推送到后台并将输出重定向到/dev/null。我想撤消它,看看它在后台很长时间后发生了什么。

有没有办法撤消> /dev/null 重定向并将进程带到前台?

【问题讨论】:

【参考方案1】:

我认为你的问题最好发布在unix。

在那里,您可以找到How to change the output redirection of a running process?,这正是您的问题以更一般的形式提出的。

从答案,以及从其创建者接受的答案中建议的第 3 方工具 (redirect),我推断没有 shell-only 方法可以完成你想要的。

不过,这个问题是 2012 年提出的,所以您可能想问一个新问题,看看在此期间是否发生了一些变化。

最后但同样重要的是,在man bash 中进行一些搜索,我找到了Coprocesses 部分,内容为

[…] A coprocess is executed asynchronously in a subshell, as if the command had been
terminated with the & control operator, with a two-way pipe established between
the executing shell and the coprocess. […] The standard output of command is
connected via a pipe to a file descriptor in the executing shell, and that
file descriptor is assigned to NAME[0]. The standard input […]

如果我正确解释了引号,这可能是一种在后台启动进程而不会失去更改其文件描述符的能力的方法。

【讨论】:

以上是关于查看重定向到 dev/null 的进程输出 - 撤消重定向的主要内容,如果未能解决你的问题,请参考以下文章

详解shell输出重定向:>/dev/null 2>&1

linux 清空文件内容的方式

I/O重定向详解

linux脚本后台运行失败

Linux重定向(转)

> 1> 2> &> /dev/null Linux重定向输出