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

Can't seeing python script output in nohup.out file

我有一个 bash 脚本循环执行 python 脚本:

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

nohup 一起发布:

nohup ./run_script.sh &

为什么如果我 运行 命令:

tail -f nohup.out

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

我在我的 运行ning 进程中正确地看到了脚本:

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 脚本,我会看到输出,但每次失败时我都需要重新启动脚本,所以我需要使用 [=36= 启动它] 剧本

也许我遗漏了一些关于 nohup 用法的概念。

我决定以这种方式修改脚本:

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

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

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