linux中nohup运行python程序无后台输出

之前,我都是使用下面这条命令在linux上运行python程序,并将程序输出(print)的内容存放至文件。

1
nohup python helloworld.py > helloworld.log  2>&1 &

一般情况下,这条命令是可以将python程序的输出存放至指定文件的。

但我发现,用这条语句运行程序,偶尔会出现没有输出至指定文件(该文件被创建,但长时间不更新内容)的情况。

经过查询,我发现原因是:

默认情况下,python程序在执行时是有输出缓冲的(没有细究,个人理解是需要等输出的内容达到一定量才会输出,有兴趣的小伙伴可以研究一下)

解决该问题的一个方法是:使用python的-u参数,如下所示。

1
nohup python -u helloworld.py > helloworld.log  2>&1 &

作者:@臭咸鱼

转载请注明出处:https://www.cnblogs.com/chouxianyu/

欢迎讨论和交流!