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

Chr*_*rgh 1 ruby linux ubuntu nohup

我正在尝试使用运行ruby脚本nohup

nohup ruby​​ script.rb和

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

通常,我可以查看nohup.out以查看使用nohup运行的任何内容的最新输出。但是,我的ruby脚本在完成或被杀死之前似乎不会输出任何内容。

我究竟做错了什么?

Sim*_*ime 5

我不熟悉通过运行命令nohup,而是通过“我正在将内容输出到文件,并且仅在脚本退出后才写入”这类问题来解决此问题,这些问题是由于缓冲了输出所致。

因此很可能正在运行nohup(因此将puts输出重定向到nohup.out),您失去了同步。您可能需要flush偶尔启用sync。因为puts是“等于$stdout.puts”:

$stdout.flush # run this, occasionally
# or just
$stdout.sync = true
Run Code Online (Sandbox Code Playgroud)