更新:这似乎是由rvm
从一台机器移动到另一台机器而不重新编译引起的 - 我无法在其他地方重现这个问题。我不会删除这个问题,因为有人可能会遇到类似的问题。感谢大家的帮助!
我正在尝试从单独的线程启动外部进程,如下所示:
def run
Thread.new do
Kernel.system('echo run')
end
end
loop do
puts 'loop begin'
run
sleep 5
puts 'loop end'
end
虽然echo
成功运行,但主线程似乎无限期地卡在sleep
。如果我用Kernel.system
替换puts 'run'
来电,一切正常。
知道为什么这不起作用?
编辑:问题出现在我的本地计算机上:
uname -a
Linux reportinghp 2.6.38-8-generic-pae #42-Ubuntu SMP Mon Apr 11 05:17:09 UTC 2011 i686 i686 i386 GNU/Linux
但不是另一个:
uname -a
Linux asd 2.6.18-128.el5 #1 SMP Wed Jan 21 10:41:14 EST 2009 x86_64 x86_64 x86_64 GNU/Linux