当我使用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)。

一个副作用是,如果 python 写入错误消息,它们将被插入到您的正常输出中(由于缓冲而在随机位置),这可能会中断对该数据的任何进一步处理。

安全的做法是自己进行这些重定向。 stdin < /dev/null、stderr 2>&1 或 2>/dev/null 或 2>some.log。

相关内容