![当我使用nohup和&在后台运行时,会对我的输出数据产生影响吗?](https://linux22.com/image/172838/%E5%BD%93%E6%88%91%E4%BD%BF%E7%94%A8nohup%E5%92%8C%26%E5%9C%A8%E5%90%8E%E5%8F%B0%E8%BF%90%E8%A1%8C%E6%97%B6%EF%BC%8C%E4%BC%9A%E5%AF%B9%E6%88%91%E7%9A%84%E8%BE%93%E5%87%BA%E6%95%B0%E6%8D%AE%E4%BA%A7%E7%94%9F%E5%BD%B1%E5%93%8D%E5%90%97%EF%BC%9F.png)
使用命令: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。