Creo que en el pasado, digamos, si ejecuto el servidor Ruby on Rails (usando rails s
) en un Bash al que hice ssh y la conexión a Internet se interrumpió, entonces
- El servidor Ruby on Rails se detendría
- El servidor Ruby on Rails en realidad siguió funcionando (creo que se debió a que la VPN se desconectó), y tuve que hacer
ps ux
y luego eliminar todos los procesos relacionados uno por uno... fue un poco complicado.
¿Podría suceder (1) o (2)? ¿Existe un comportamiento bien definido? Por ejemplo, si no es una VPN pero el ssh está desconectado, entonces (1), pero si es una VPN, ¿entonces (1) o (2)?
PD: He cambiado a usar tmux
si tengo que ejecutar un servidor Rails en él, para poder regresar y tmux a -t foo
volver a conectarlo, y presionar CTRL-C si es necesario.
Respuesta1
Sí, los procesos asociados con el shell reciben señal hup. Pueden ignorar, si se programan de esa manera. Ver hombre para nohup
.
por ejemplo, nohup command
para ejecutar el comando para que no reciba un salto. Pero también tiene stdin, stdout, stderr redirigidos.
Ver también disown
, y&
desconectarse completamentenohup > /dev/null command & disown