在 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/。
我有一个 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/。