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 回答