是否可以读取从桌面启动的应用程序的 stdout 和 stderr?

是否可以读取从桌面启动的应用程序的 stdout 和 stderr?

假设我从我的应用程序启动 Firefox。 stdout 和 stderr 是重定向到特定文件还是重定向到/dev/null?如果它确实被重定向到特定文件,我还想知道如何在不知道重定向 stdout 和 stdin 的位置的情况下如何从终端运行应用程序(例如 nohup 和 disown)。换句话说,我如何告诉桌面启动应用程序,而不是自己从终端将其作为独立进程启动。当然,如果重定向到/dev/null,那么nohup APP >/dev/null 2>&1& disown就足够了。

答案1

通常,桌面环境组件的标准输出和错误~/.xsession-errors默认会重定向到类似的文件(可能因发行版而异),并且当您通过 GUI 启动 Firefox 等应用程序时,它将继承该重定向。

GUI 应用程序的标准输入通常是/dev/null.

但你可以做任何你想做的事。

重定向到/dev/null是一个有效的选项和常见的选择,特别是如果您对 GUI 应用程序可能在 stdout/stderr 上生成的任何调试输出不感兴趣,或者知道相关应用程序不会生成任何输出。

相关内容