デスクトップで実行されているアプリケーションのstdoutとstderrを読み取ることはできますか?

デスクトップで実行されているアプリケーションのstdoutとstderrを読み取ることはできますか?

私のアプリケーションでFirefoxを実行しているとしましょう。 stdoutとstderrは特定のファイルにリダイレクトされますか/dev/null?特定のファイルにリダイレクトされる場合は、stdoutとstdinがリダイレクトされている場所を知らずに端末でアプリケーション(nohupやdisownなど)を実行する方法も知りたいです。つまり、端末からスタンドアロンプ​​ロセスとして直接実行するのではなく、デスクトップにアプリケーションを実行するように指示する方法は何ですか?もちろん にリダイレクトすれば、/dev/nullnohup APP >/dev/null 2>&1十分& disownです。

答え1

通常、デスクトップ環境コンポーネントの標準出力とエラーは~/.xsession-errors基本的に同様のファイルにリダイレクトされ(配布版によって異なります)、GUIを介してFirefoxなどのアプリケーションを起動すると、このリダイレクトが継承されます。

GUIアプリケーションの標準入力は通常/dev/null

しかし、あなたが望むものは何でもできます。

リダイレクトは/dev/null有効なオプションであり、一般的な選択です。特に、GUIアプリケーションがstdout / stderrで生成できるデバッグ出力に興味がない場合、または問題のアプリケーションが出力を生成しないことがわかっている場合は、はい。

関連情報