我已经将几个进程推到后台,并将输出重定向到 /dev/null
。现在我想要撤销这个操作并查看它在后台运行了很长时间之后发生了什么。
有没有一种方法可以撤销 > /dev/null
重定向并将该进程切换到前台?
我已经将几个进程推到后台,并将输出重定向到 /dev/null
。现在我想要撤销这个操作并查看它在后台运行了很长时间之后发生了什么。
有没有一种方法可以撤销 > /dev/null
重定向并将该进程切换到前台?
redirect
)中,我推断出没有仅使用shell就能实现你想要的方法。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 […]
如果我正确理解引用的话,这可能是在不失去更改进程文件描述符的能力的情况下启动后台进程的一种方式。
while IFS= read -r line; if (( trash )); then :; else printf '%s\n'; fi; done
的东西,并设置一个陷阱以接受 SIGUSR1 信号并切换 trash
是否为真。有很多解决方案,但使得这个问题与现有的主题不同的是,他们试图在没有事先设置好知道他们会改变输出位置的情况下修复他们犯的错误。 - Charles Duffy
/dev/null
的内容;特别是sysdig具有一个“凿子”(用lua编写的辅助脚本),可以将内容重新组装成类似于尾随stdout的东西。 - Charles Duffyexec >/dev/null
?) - Charles Duffy