0
我試圖將子進程分叉並跟蹤進程是否仍在運行或已完成,但我不想阻止並等待進程完成,因爲我需要能夠繼續進行監視新的傳入請求並根據需要分離額外的子進程。紅寶石叉多個進程和跟蹤狀態的運行/完成?
這是我正在嘗試做的一些基本示例代碼。
loop do
pid = fork do
puts 'foo'
exit 99
end
ret_pid = wait2(pid, Process::WNOHANG) # Tried this, but it never gets a value
if ret_pid
puts 'got a returned pid'
end
end
我試着使用Process::WNOHANG
標誌等;這不會阻止,但它似乎從來沒有得到任何類型的返回狀態。我試過wait
和wait2
,但沒有區別。
我也試過等待,只是使用wait(pid)
,它從子進程獲取狀態,但是這會阻塞,所以最終只有一個分支進程對我沒有任何好處。