stderr がそのコンテンツをどこにダンプするかを知りたかったのです。syslog にダンプするかどうかなどの質問があります。説明してください。
5 に答える
stderr
のように、単なる別の出力ストリームですstdout
。
どこに接続されるかは、アプリケーションの呼び出し方法によって異なります。
たとえば、実行すると、指定しfoo.exe 2> errors.txt
たstderr
ファイルに書き込みます。
リダイレクトすることを決定するたびに、標準エラー出力がダンプされます。
アイコンなどをクリックして GUI 環境でプログラムを実行する場合は.xsession-errors
、$HOME
.
シェルからプログラムを実行し、stderr をリダイレクトしない場合は、端末に表示されるだけです (他の場所には保存されません)。
それは環境次第です。
デフォルトでは、stderr は通常、stdout と同じ場所、つまり現在の端末に接続されます。
そうしないと、面倒なエラーが表示されません。
これは、 stderr をシステムのロギング メカニズムにリダイレクトすることに関するブログ投稿です。
他の場所にリダイレクトstderr
することもできますが、通常はと同じ場所に出力されstdout
ます。それをsyslogにするには、間違いなく少し作業する必要があります。このリンク:
bashを使用して、標準エラーを別のプロセスにパイプするにはどうすればよいですか?
は、stderrをパイプにパイプする方法を示しています。他のプロセスが「syslog」に書き込むプロセスである場合は、必要な処理を実行します。ただし、ほとんどの場合、syslog機能を独自のプログラムに追加する方がおそらく簡単です。
stderr
ストリームです。所有するプロセスによって管理され、出力されます。どこに「行く」かは、プロセスがどのように呼び出されるかによって定義されます。親プロセスは、それを収集してファイルに書き込んだり、無視したり、リダイレクトしたり/dev/null
(本質的にビニング) したりできます。