如果fork块,exit会在这个ruby中做什么

一些代码如下:

def start if fork do something exit 0 end end 

fork复制子进程,对不对? 但我的问题是哪个进程确实exit 0 ?父进程或子进程?

fork ,如果没有块,则有两个不同的返回值。 对于父级,它返回子级的进程ID(PID)。 对于孩子,它返回nil ,这是假的。

这样做是有利的:

 if fork ...this is the parent... else ...this is the child... end 

所以你的代码在上面分叉,父母做了一些事情,然后父母退出,孩子继续存在。