shell下python脚本的输出转向

一个用python写的脚本,在本地测试的时候用python的print输出了一些状态信息,用于观测程序运行的状况。脚本自身比较耗时(中间故意设置了延时)。
在部署到服务器上后,需要后台运行,因此就想当然的转向输出到一个文本log中:
python script.py > output.log &
结果发现log文件一直是空白(程序在持续运行中),但正常应该是有文本记录的。结果网上搜索才发现,python脚本默认是在脚本整个执行完成后才输出的。(参考:https://unix.stackexchange.com/questions/182537/write-python-stdout-to-file-immediately/182542#182542
当然,知道问题后解决方案也很简单:
python -u script.py > output.log &

Leave a Reply

Your email address will not be published. Required fields are marked *