シェルスクリプトで使用しているバイナリの1つが、セグメンテーション違反を引き起こしています(戻り値:139)
また、stdoutとstderrの両方をログファイルにリダイレクトしていますが、シェルスクリプトを実行しているときに、セグメンテーション違反のエラーメッセージがターミナルに表示されます。
このメッセージをSegfaultからログファイルにリダイレクトすることは可能ですか?
シェルスクリプトで使用しているバイナリの1つが、セグメンテーション違反を引き起こしています(戻り値:139)
また、stdoutとstderrの両方をログファイルにリダイレクトしていますが、シェルスクリプトを実行しているときに、セグメンテーション違反のエラーメッセージがターミナルに表示されます。
このメッセージをSegfaultからログファイルにリダイレクトすることは可能ですか?
さて、私は自分の質問に答えています..:)ここで答えを見つけまし たFortran90プログラムでSIGSEGVまたはSIGFPEによる出力を抑制するにはどうすればよいですか?
秘訣は追加することです
`exec 2> filename`
シェルスクリプトで。
これにより、すべてのメッセージがシェルからログファイルにリダイレクトされます
表示されるセグメンテーション違反メッセージは、プログラムを実行しているシェルによって出力されます。この動作はシェルごとに異なるため、いくつか試すことができます(シェルリダイレクトからログにセグメンテーション違反メッセージを取得することを主張する場合)。
# Have sh invoke your program, and redirect output from both sh and your program into logfile
sh -c "program arguments more arguments" >logfile 2>&1
# Force bash to not just exec your program (/bin/true part), and redirect output
# from both bash and your program into logfile
bash -c "/bin/true; program arguments more arguments" >logfile 2>&1