我尝试在Raspbian操作系统的后台运行python脚本。当我使用以下命令时:
nohup python <script> >> log.txt
其中<script>
是python文件名。程序将所有输出保存在log.txt中,但只有当我终止程序时才保存它们,因为这是一个永无止境的循环(我知道这一点,因为我打开了另一个终端并使用了tail -f log.txt
)。此外,如果我使用以下命令:
nohup python <script> >> log.txt &
创建了log.txt文件,但没有添加数据。对于为什么会发生这种情况,有什么建议吗?提前感谢!
PS:我试着在命令中使用sudo来了解错误是否是权限,但结果是一样的。我也试过&>>
,同样的结果。
1条答案
按热度按时间brjng4g31#
分两步走:
许多工具(以及Python)都使用输出缓冲来进行优化:输出被存储,直到收集到一定量的数据(通常是4KB的倍数)。然后输出这个块。python支持选项-u。
也许你也必须保存stderr(
2>&1
在重定向之后)。所以我的解决方案是: