标签: ruby linux ubuntu nohup
我尝试使用nohup运行ruby脚本:
nohup
nohup ruby script.rb&
这需要几个小时才能运行,但会通过puts记录其进度。
puts
通常,我可以查看nohup.out来查看我用nohup运行的任何内容的最新输出。但是,我的ruby脚本似乎没有输出任何东西,直到它完成或被杀死。
我做错了什么?
答案 0 :(得分:4)
我不熟悉通过nohup运行命令,但是从“我将内容输出到文件”中接近这个命令,并且它只是在脚本退出"问题的类型,这些是由输出缓冲引起的。
因此,很可能通过nohup运行(从而将puts输出重定向到 nohup.out ),您失去了同步。您可能需要偶尔flush或启用sync。由于puts是"相当于$stdout.puts":
flush
sync
$stdout.puts
$stdout.flush # run this, occasionally # or just $stdout.sync = true