1

Ubuntu 12.04 で Ruby 1.9.2-p180 を使用しています。次のコードが機能しない理由がわかりません。予想される動作は、コードを実行すると画面に "TRAPPED" というテキストが表示され、プログラムが終了することです。しかし、Ruby プログラムを実行しても終了せず、画面に何も出力されません。私は何が欠けていますか?

pid = fork do                                                                  
  exec "trap 'echo TRAPPED' TERM; while :; do :; done"       
end                                                                           
Process.kill("TERM", pid)                                                      
Process.wait(pid)
4

1 に答える 1

2

期待どおりに機能しなかった理由は、exec が開始される前に kill が配信されたためです。キルを配信する前に少しスリープを導入すると、プログラムが期待どおりに動作することが保証されます。

于 2012-07-03T19:01:23.263 に答える