I have a long running process and I need it to launch another process (that will run for a good while too). I need to only start it, and then completely forget about it.
Alnitak is right. Here's a more explicit way to write it, without $$
pid = Process.fork if pid.nil? then # In child exec "whatever --take-very-long" else # In parent Process.detach(pid) end
The purpose of detach is just to say, "I don't care when the child terminates" to avoid zombie processes.