0

似乎是一个简单的问题,但我无法弄清楚。而且我是 ruby​​ on rails 的新手。

1    pid = Process.fork
2    
3      if pid.nil? then   
4        puts "Child process"
5      else
6        puts " Continuing parent proceesss"
7      end  
8       
9      puts "This line should be printed only once, by parent"

我的理解是第 9 行应该只由父母打印一次。但是,它被打印了两次。由父母和孩子!

如何在父级中执行第 9 行?即我希望孩子在第 4 行之后退出

谢谢你的帮助。

4

1 回答 1

4

哈,你几乎拥有它。您需要放在exit第 4 行之后。

if pid.nil? then
    puts "Child process"
    exit
else
    ...

分叉一个进程旨在允许两个进程继续,对吗?您将您的流程分成两个副本,然后它们都从它们被分叉的地方继续。如果你想让孩子退出,你应该告诉它退出。

于 2012-07-30T21:06:46.330 回答