Nohup不会将日志写入输出文件

我正在使用以下命令在后台运行python脚本:

nohup ./cmd.py > cmd.log & 

但是看起来nohup并没有向日志文件写任何东西。 cmd.log被创build,但始终为空。 在Python脚本中,我正在使用sys.stdout.write而不是打印到标准输出。 我做错了什么?

它看起来像你需要定期刷新stdout(例如sys.stdout.flush() )。 在我的testing中,Python直到程序退出时才会自动执行此操作。

您可以使用-u标志运行Python以避免输出缓冲:

 nohup python -u ./cmd.py > cmd.log & 

使用-unohup为我工作。 喜欢这个-

 nohup python -u code.py & 
 export PYTHONUNBUFFERED=1 nohup ./cmd.py > cmd.log & 

要么

 nohup python -u ./cmd.py > cmd.log & 

https://docs.python.org/2/using/cmdline.html#cmdoption-u