我想要spawn一個可能長時間運行的行程并保存它的 PID,以便稍后在需要時將其殺死。問題是我從中獲得的 PIDspawn與我從Process.pid(在子行程中)獲得的 PID 不同。結果Process.pid與我ps在命令列中看到的匹配。
這是父母和孩子的代碼
父.rb
puts "Hi parent"
pid = spawn "ruby child.rb 10 &"
puts pid
Process.detach(pid)
sleep 3
puts "Bye parent"
子.rb
puts "Start pid #{Process.pid}"
sleep ARGV.first.to_i
puts "End pid #{Process.pid}"
輸出
Hi parent
1886789
Start pid 1886791
Bye parent
End pid 1886791
uj5u.com熱心網友回復:
看起來后臺作業運算子 ( &) 正在導致中間行程1886789。當我洗掉后臺作業運算子時,我得到以下輸出:
Hi parent
93185
Start pid 93185
Bye parent
End pid 93185
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/431891.html
下一篇:表單助手,嵌套資源,不設定父資源
