我有一个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
使用的一些概念。
答案 0 :(得分:0)
我解决了以这种方式修改脚本的问题:
while true; do python3 -u script.py && break; done
执行期间的输出文件nohup.out
保持为空,直到执行完成。发生这种情况是由于输出缓冲。添加-u
标志可以避免输出缓冲。
有关其他详细信息,请参见此博客页面https://janakiev.com/blog/python-background/。