在nohup.out文件中看不到python脚本输出

时间:2019-10-13 13:15:26

标签: python-3.x bash nohup

我有一个bash脚本,它可以循环执行python脚本:

 while true; do python3 script.py && break; done

nohup推出:

nohup ./run_script.sh &

为什么要运行命令:

tail -f nohup.out

我没有看到python脚本的输出吗?

我在运行过程中正确看到了该脚本:

pi        2757  1.5  3.4  37268 33064 ?        S    15:06   0:18 python3 script.py
pi        2819  0.0  0.0   1908   388 ?        S    15:07   0:00 /bin/sh ./run_script.sh
pi        2820  1.6  3.5  37268 33096 ?        S    15:07   0:18 python3 script.py

如果我直接使用nohup启动python脚本,则会看到输出,但是每次失败都需要重新启动该脚本,因此我需要使用bash脚本进行卸载

也许我缺少有关nohup使用的一些概念。

1 个答案:

答案 0 :(得分:0)

我解决了以这种方式修改脚本的问题:

while true; do python3 -u script.py && break; done

执行期间的输出文件nohup.out保持为空,直到执行完成。发生这种情况是由于输出缓冲。添加-u标志可以避免输出缓冲。

有关其他详细信息,请参见此博客页面https://janakiev.com/blog/python-background/