Cuando uso la gema de depuración de Ruby, a menudo veo el siguiente resultado impreso:
DEBUGGER: Attaching after process <pid1> fork to child process <pid2> donde <pid1> es un ID de proceso principal como 12345 y <pid2> es un ID de proceso secundario recién bifurcado, como 55555.
¿Que esta pasando aqui? ¿Tiene algo que ver con conectarse a precargadores de aplicaciones como Spring o Zeus ?
Viene de este código aquí: https://github.com/ruby/debug/blob/4af8c25140a7a672db852954b6a1733b3169b608/lib/debug/session.rb#L2129-L2162
Lo que sucede es que su proceso principal de Ruby está bifurcando un nuevo proceso, y le dice que el depurador se está adjuntando al proceso secundario recién creado con el ID de proceso <pid2> , por lo que también puede interrumpirse para depurar eventos.
En mi caso, esto sucedía al llamar a visit <url> en una prueba automatizada que, debido a que tiene un controlador web Capybara Selenium, crea un nuevo proceso secundario para activar un proceso de Chrome para procesar el HTML de la solicitud.
De forma predeterminada, la gema de depuración de Ruby se adjuntará a los procesos principal y secundario. Pero puede anular para activar solo el depurador para el elemento secundario o principal mediante la variable de entorno RUBY_DEBUG_FORK_MODE .
Para ser claros, no tiene nada que ver con los precargadores de aplicaciones como Spring o Zeus.