バックグラウンドで実行されているスクリプトのSTDERRとSTDOUTをキャプチャしたいと思います。

バックグラウンドで実行されているスクリプトのSTDERRとSTDOUTをキャプチャしたいと思います。

バックグラウンドでスクリプトを実行し、STDERRとSTDOUTもキャプチャする必要があります。以下の行を使用しています。

test.sh & >> log_file 2>&1

しかし、残念ながらlog_fileには何も記録されません。

ここで助けてください

答え1

背景文字の位置に注意してください&

test.sh >> log_file 2>&1 &

答え2

これは効果があります

( echo stdout; echo >&2 stderr )& >> log 2>&1;
sleep 0.1; echo LOG:; cat log

そして、stdoutとstderrの両方がログに到着することを示しています。

間違ってはあなたのもの間違いありませんtest.sh

関連情報