简单来说:Process.spawn = Process.fork + exec
Process.fork
allows you to run ruby code in another process. Process.spawn
allows you to run another program in another process. Basically Process.spawn
is like using Process.fork
and then calling exec
in the forked process, except that it gives you more options.
Use fork
if you need to run arbitrary ruby code in a separate process (you can't do that with spawn
). Use spawn
if you need to invoke an application in a subprocess.
Source:
http://stackoverflow.com/questions/4129196/whats-the-difference-between-process-fork-and-process-spawn-in-ruby-1-9-2