状態情報を標準出力に記録し、デバッグ情報を標準エラーに記録する長期実行プロセスがあります。
logger
stderrで書かれたすべての内容が実際にsyslogに移動しながらプロセスのstdoutを読むことができるように、stderr出力をパイプで接続したいと思います。
これは可能ですか?
ベストアンサー1
{ cmd 2>&1 >&3 3>&- | logger 3>&-; } 3>&1
アイデアは外のstdoutはファイル記述子(fd)3にコピーされ、stdoutに復元さcmd
れますが、cmdのファイル記述子2(stderr)自体はロガーのパイプに移動します。
これは3>&-
cmdおよびloggerコマンドが必要/使用されないため、その目的を実行した後にfdを閉じることです。