Estoy escribiendo un script de arranque de ruby para un proyecto escolar, y parte de este proceso de arranque es para iniciar un par de procesos en segundo plano (que están escritos y funcionan correctamente). Lo que me gustaría hacer es algo similar a:engendrar un proceso de fondo en Ruby
`/path/to/daemon1 &`
`/path/to/daemon2 &`
`/path/to/daemon3 &`
Sin embargo, eso bloquea en la primera llamada para ejecutar daemon1. He visto referencias a un método Process.spawn
, pero eso parece ser una característica de 1.9+, y estoy limitado a Ruby 1.8.
También he intentado ejecutar estos demonios a partir de diferentes hilos, pero me gustaría que mi script de arranque pueda salir.
Entonces, ¿cómo puedo iniciar estos procesos en segundo plano para que mi script de arranque no se bloquee y pueda salir (pero aún tenga los daemons ejecutándose en segundo plano)?
Si está buscando algo más grande (pero aún en el mismo host), considere daemon_controller. http://blog.phusion.nl/2008/08/25/daemon_controller-a-library-for-robust-daemon-management/ – Levi
¡Perfecto! Sabía sobre 'fork' y' exec' (viniendo de un fondo C), pero era el 'Process.detach()' que me faltaba. ¡Gracias! –
Esto no funciona como esperaba, para mí, en OSX Lion y el ruby preinstalado. – nes1983