我使用以下命令在后台运行python脚本:
nohup ./cmd.py > cmd.log &
但nohup似乎没有向日志文件写入任何内容。cmd.log已创建,但始终为空。在python脚本中,我使用sys.stdout.write
而不是print
来打印到标准输出。我做错什么了吗?
>
使用-u
和nohup
对我很有效。使用-u
将强制stdout
,stderr
流取消缓冲。它不会影响stdin。所有内容都将保存在“nohup.out”文件中。像这样-
nohup python -u your_code.py &
您也可以将其保存到您的目录中。这种方式-
nohup python -u your_code.py > your_directory/nohup.out &
此外,您可以使用PYTHONUNBUFFERED
。如果将其设置为非空字符串,则其工作方式与-u
选项相同。用于在运行python代码之前运行下面的命令。
export PYTHONUNBUFFERED=1
或
export PYTHONUNBUFFERED=TRUE
另外,我建议使用cronjob之类的工具在后台运行,并安排执行。
看起来您需要定期刷新标准输出(例如,sys.stdout.flush()
)。在我的测试中,在程序退出之前,Python不会自动执行此操作,即使使用print
。
可以使用-u
标志运行Python,以避免输出缓冲:
nohup python -u ./cmd.py > cmd.log &
问题内容: 我使用以下命令在后台运行python脚本: 但nohup似乎没有向日志文件写入任何内容。命令日志是 已创建但始终为空。在python脚本中,我使用 而不是打印到标准输出。我在做什么 有什么不对劲吗? 问题答案: 看起来你需要定期刷新stdout(例如。 ). 在我的测试中,Python甚至不会自动做到这一点 直到程序退出。
问题内容: 我正在尝试使用Go写入日志文件。 我尝试了几种方法,但都失败了。这是我尝试过的: 日志文件被创建,但是没有任何打印或附加到该文件。为什么? 问题答案: 过去的工作方式一定不同,但这对我有用: 基于Go文档,不能用于,因为它会打开文件“供阅读:” 打开命名文件以供读取。如果成功,则可以使用返回文件上的方法进行读取;关联的文件描述符具有mode 。如果有错误,它将是类型。 编辑 检查后移至
在中有一个,可以将日志写入到。 我需要在中使用相同的功能,但我还没有找到这样做的选项。有人知道如何使用实现同样的效果吗?
我创建了以下groovy脚本,以展示如何使用简单的注释将日志字段注入我们的类 当我运行groovy脚本时,我得到以下结果(在GROOVY CONSOLE上) 请告知我们如何将结果打印到WIN机器中的日志文件中,以及需要向groovy脚本中添加什么才能启用它? 例如: 日志文件 C: \程序文件\日志\我的。非常棒。日志 (应包含结果:)
在HDFS中写入日志文件的最佳方式是什么?我正在尝试配置Apache Flume,并尝试配置能够为我提供数据可靠性的源。我试图配置“exec”,后来也查看了“spooldir”,但flume.apache上的以下文档。org对我的意图表示怀疑- 执行来源: 最常请求的功能之一是像“tail -F file_name”这样的用例,其中应用程序写入磁盘上的日志文件,Flume 尾随文件,将每一行作为事