2017-09-20 60 views
-1

我尝试使用while循环启动一个命令并继续我的脚本,但循环永远不会结束。条件是true我不想放false,因为命令必须每10分钟。while循环后Ruby netx命​​令

while true 
    pid = spawn('xterm -e command') 
sleep 600 
Process.kill('TERM', pid) 
end 

同样的bash代码工作很好,因为我可以后done

while : ; do 
     xterm -e command ; sleep 600 ; done & 
     echo $! >/tmp/mycommand.pid 

在红宝石执行使用&脚本的下一个命令就结束语句块在我的循环脚本?或者true的值在这里不合适?

+0

你的问题还不清楚。你写了一个无限循环,然后你抱怨“循环永远不会结束”(当然,它没有完成,它是一个*无限*循环),然后你说你希望命令每10分钟执行一次,这意味着你不想循环完成? –

+0

是的,我错过了我的问题中的一些关键点抱歉。我只是想能够像在我的bash代码中一样在ruby中执行相同的代码。每10分钟调用一次命令,但在脚本中的其他命令之后没有问题。再次运行。 –

回答

0

如果我的理解对不对,你要创建一个线程:

Thread.new do 
    while true 
    sleep(1) 
    puts 'inside' 
    end 
end 

puts 'outside' 
sleep(3) 

输出:

outside 
inside 
inside 
+0

@flowdaguerre它有帮助吗? –