2017-09-20 98 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它有幫助嗎? –