Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 分叉过程的术语信号不';行不通_Ruby_Process - Fatal编程技术网

Ruby 分叉过程的术语信号不';行不通

Ruby 分叉过程的术语信号不';行不通,ruby,process,Ruby,Process,我在Ubuntu 12.04上使用Ruby 1.9.2-p180。我不明白为什么下面的代码不起作用。预期的行为是,当我运行代码时,我应该在屏幕上看到文本:“TRAPPED”,程序应该终止。但是当我运行ruby程序时,它不会终止,屏幕上也不会打印任何内容。我错过了什么 pid = fork do exec "trap 'echo TRAPPED' TERM; wh

我在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)

它没有像预期的那样起作用的原因是杀戮是在执行官开始之前完成的。在交付kill之前引入一点睡眠可以确保程序按预期运行。

问题已解决。它没有像预期的那样起作用的原因是杀戮是在执行官开始之前完成的。在交付kill之前引入一点睡眠可以确保程序按预期运行。如果您解决了问题,请回答您的问题。