nohupと&をバックグラウンドで実行すると、出力データに影響しますか?

nohupと&をバックグラウンドで実行すると、出力データに影響しますか?

使用コマンド:nohup python get_seq.py TPH_hits all_genomes_eukaryotes_20200303.fas > TPH_seq2.fasta &

nohup:入力を無視してstderrをstdoutにリダイレクトします。

私の出力データに影響しますか?

答え1

Nohupは、実行中のバックグラウンドプロセスがこれらのストリームを切断したことを知らせます。これは、プロセスを終了するために使用されないことを保証しないためです(たとえば、stdinのSIGINTまたはstderrがパイプに接続されている場合はSIGPIPE)。

1つの副作用は、Pythonがエラーメッセージを作成すると、通常の出力(バッファリングのために任意の場所)にエラーメッセージが挿入され、そのデータの追加処理が中断される可能性があることです。

最も安全な方法は、これらのリダイレクトを直接実行することです。 stdin < /dev/null、stderr 2>&1 または 2>/dev/null または 2>some.log。

関連情報