使用nohup的方式,去执行一个python脚本:nohup python test.py > out.log &
结果郁闷啊,怎么都查看不到输出!
python默认的print输出stdout是开启了buffered IO,所以print先输出到缓冲区,等执行完毕后才能一次性flush出去。
解决方法有以下几种:
1.使用-u参数,使得python不启用缓冲
nohup python -u test.py > out.log &
2.在print之后加上
sys.stdout.flush()
3. 重新设置sys.stdout
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。 温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。