通过nohup运行ruby脚本时,为什么不写入nohup.out

时间:2017-09-06 13:52:15

标签: ruby linux ubuntu nohup

我尝试使用nohup运行ruby脚本:

  

nohup ruby​​ script.rb&

这需要几个小时才能运行,但会通过puts记录其进度。

通常,我可以查看nohup.out来查看我用nohup运行的任何内容的最新输出。但是,我的ruby脚本似乎没有输出任何东西,直到它完成或被杀死。

我做错了什么?

1 个答案:

答案 0 :(得分:4)

我不熟悉通过nohup运行命令,但是从“我将内容输出到文件”中接近这个命令,并且它只是在脚本退出"问题的类型,这些是由输出缓冲引起的。

因此,很可能通过nohup运行(从而将puts输出重定向到 nohup.out ),您失去了同步。您可能需要偶尔flush或启用sync。由于puts是"相当于$stdout.puts":

$stdout.flush # run this, occasionally
# or just
$stdout.sync = true