在shell中你可以做重定向, >
<
等等,但是在程序启动之后呢?
这就是我问这个问题的方式,在我的终端后台运行的程序不断输出烦人的文本。这是一个重要的过程,所以我必须打开另一个 shell 以避免文本。我希望能够 >/dev/null
或其他一些重定向,以便我可以继续在同一个 shell 中工作。
原文由 Ian Kelling 发布,翻译遵循 CC BY-SA 4.0 许可协议
在shell中你可以做重定向, >
<
等等,但是在程序启动之后呢?
这就是我问这个问题的方式,在我的终端后台运行的程序不断输出烦人的文本。这是一个重要的过程,所以我必须打开另一个 shell 以避免文本。我希望能够 >/dev/null
或其他一些重定向,以便我可以继续在同一个 shell 中工作。
原文由 Ian Kelling 发布,翻译遵循 CC BY-SA 4.0 许可协议
这将做:
strace -ewrite -p $PID
它不是那么干净(显示如下行: write(#,<text you want to see>)
),但有效!
你也可能不喜欢参数被缩写的事实。要控制它,请使用 -s
设置显示字符串的最大长度的参数。
它捕获所有流,因此您可能希望以某种方式对其进行过滤:
strace -ewrite -p $PID 2>&1 | grep "write(1"
仅显示描述符 1 调用。 2>&1
是将STDERR重定向到STDOUT,因为 strace
默认写入STDERR。
原文由 naugtur 发布,翻译遵循 CC BY-SA 3.0 许可协议
7 回答5.6k 阅读
4 回答4.3k 阅读
2 回答969 阅读✓ 已解决
2 回答3.5k 阅读
1 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
2 回答1.6k 阅读
如果没有关闭并重新打开您的 tty(即注销并重新打开,这也可能会终止进程中的一些后台进程),您只有一个选择:
例如:
您还可以考虑:
screen
; screen 提供了几个虚拟 TTY,您可以在无需打开新的 SSH/telnet/etc、会话的情况下进行切换nohup
;这使您可以关闭并重新打开会话,而不会丢失…进程中的任何后台进程。