Estoy aprendiendo a través de la programación de sistemas de rubí y estoy teniendo problemas para entender este comportamiento:necesita ayuda para entender Process.detach de rubí
pid = fork do
Signal.trap("USR1") do
puts "hello!"
end
Signal.trap("TERM") do
puts "Terminating"
exit
end
loop do
end
end
Process.detach(pid)
Process.kill("USR1", pid)
Process.kill("USR1", pid)
Process.kill("USR1", pid)
Process.kill("USR1", pid)
Process.kill("TERM", pid)
Este salidas como espero:
hello!
hello!
hello!
hello!
Terminating
Sin embargo, si Comente Process.detach, el proceso hijo parece responder solo a la señal una vez (y después de la terminación?):
Terminating
hello!
No entiendo por qué sucede esto cuando no desconecto el proceso, aunque lo envié cuatro veces. ¿Alguien puede ayudar a explicar este comportamiento? Creo que no entiendo qué significa separar un proceso.
¡Muchas gracias!
ah, gracias! Sí, supongo que la programación es lo que me resulta desconcertante (estoy en OSX, debería probarlo en una caja virtual y ver qué pasa). – ambertch