How can one start a background child process in a platform independent 
manner (i.e., no fork)?

With 'system "something&"', the process is started in the background, 
but it is not a child, so I can't wait for it to finish:

$ ruby -e 'system "sleep 5&"; Process.wait'
-e:1:in `wait': No child processes (Errno::ECHILD)
         from -e:1

Anyway, I don't know if the 'system "something&"' construct even works 
on windows (I'm not near a windows box today, or I'd test it).

Can I do this with pipes? How will I know when the child has exited or died?

I'm reluctant to use pipes because I don't care about stdin/stdout and 
don't want to worry about whether win32 support is ok. I don't need 
pipes for commuication, since I'm communicating among processes by 
writing and reading locked files. Aside from that, all I need to know 
from the child is when it is done. (That's the only reason I wanted it 
to be a child in the first place, so that I could use Process.wait or 
Process.waitpid on it.)

Thanks for any suggestions....