¿Cómo disparar y olvidar un subproceso?
Tengo un proceso de larga ejecución y lo necesito para iniciar otro proceso (que también se ejecutará por un buen tiempo). Solo necesito iniciarlo y luego olvidarlo por completo.
Me las arreglé para hacer lo que necesitaba sacando un poco de código del libro Programming Ruby, pero me gustaría encontrar la mejor / correcta manera y entender lo que está sucediendo. Esto es lo que obtuve inicialmente:
exec("whatever --take-very-long") if fork.nil?
Process.detach($)
Entonces, ¿es este el camino, o de qué otra manera debería hacerlo?
Después de verificar las respuestas a continuación, terminé con este código, que parece tener más sentido:
(pid = fork) ? Process.detach(pid) : exec("foo")
Agradecería alguna explicación sobre cómofork
trabajos. [ya tengo eso]
Se estaba separando$$
¿derecho? No sé por qué esto funciona, y realmente me encantaría tener una mejor comprensión de la situación.