我使用以下命令在后台运行python脚本:
nohup ./cmd.py > cmd.log &
但是看起来nohup没有在日志文件中写入任何内容。cmd.log已创建,但始终为空。在python脚本中,我使用sys.stdout.write
而不是print
打印到标准输出。我做错什么了吗?
发布于 2012-10-17 01:17:12
看起来你需要定期刷新stdout (例如sys.stdout.flush()
)。在我的测试中,即使使用print
,Python也不会自动执行此操作,直到程序退出。
发布于 2012-10-17 01:19:18
您可以使用-u
标志运行Python,以避免输出缓冲:
nohup python -u ./cmd.py > cmd.log &
发布于 2017-04-09 15:21:37
export PYTHONUNBUFFERED=1
nohup ./cmd.py > cmd.log &
或
nohup python -u ./cmd.py > cmd.log &
https://stackoverflow.com/questions/12919980
复制相似问题