gpt4 book ai didi

linux - 长时间运行的脚本的 Unix 重定向

转载 作者:太空狗 更新时间:2023-10-29 11:15:21 26 4
gpt4 key购买 nike

我有一个基本上看起来像这样的 cron 作业:

*/3 * * * * ruby myscript.rb > /my/location/file.txt

myscript.rb 基本上是这样的:

#!/usr/bin/env ruby
sleep(120)
puts "Hello"

所以我每三分钟运行一个脚本,该脚本在写入 STDOUT 之前运行两分钟。 (事实上​​,myscript.rb 正在发出大量的 HTTP 请求,而不是休眠。我怀疑是时候到了。)

奇怪的结果是,在一段时间内,/my/location/file.txt 是空的。

似乎脚本开始时,文件被清空,只有当脚本结束时,才会有数据写入文件。

但这不是 *nix 重定向的工作方式,对吧?

最佳答案

ruby 进程可能只是缓冲它的输出,要将 STDOUT 设置为始终刷新其输出,请为 STDOUT 设置 sync=true:

STDOUT.sync = true

关于linux - 长时间运行的脚本的 Unix 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14638322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com