当通过nohup运行ruby脚本时,为什么不将write放到nohup.out

当通过nohup运行ruby脚本时,为什么不将write放到nohup.out,ruby,linux,ubuntu,nohup,Ruby,Linux,Ubuntu,Nohup,我正在尝试使用nohup运行ruby脚本: nohup ruby script.rb& 这需要几个小时才能运行,但通过puts记录其进度 通常,我可以查看nohup.out来查看我使用nohup运行的任何东西的最新输出。然而,我的ruby脚本在完成或被终止之前似乎不会输出任何内容 我做错了什么?我不熟悉通过nohup运行命令,但从一开始我就将内容输出到一个文件,只有在脚本退出后才写入,这是由缓冲输出引起的 所以很可能是通过nohup运行,从而将put输出重定向到nohup.out,从而丢失了同步

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

nohup ruby script.rb&

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

通常,我可以查看nohup.out来查看我使用nohup运行的任何东西的最新输出。然而,我的ruby脚本在完成或被终止之前似乎不会输出任何内容


我做错了什么?

我不熟悉通过nohup运行命令,但从一开始我就将内容输出到一个文件,只有在脚本退出后才写入,这是由缓冲输出引起的

所以很可能是通过nohup运行,从而将put输出重定向到nohup.out,从而丢失了同步。您可能需要偶尔或启用。因为相当于$stdout.put:


我不熟悉通过nohup运行命令,但是从一个角度来看,我正在将内容输出到一个文件,并且只有在脚本退出后才写入,这类问题是由缓冲输出引起的

所以很可能是通过nohup运行,从而将put输出重定向到nohup.out,从而丢失了同步。您可能需要偶尔或启用。因为相当于$stdout.put:

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