¿Existe un comportamiento definido del programa actual que se ejecuta cuando nuestro ssh sale?

¿Existe un comportamiento definido del programa actual que se ejecuta cuando nuestro ssh sale?

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

  1. El servidor Ruby on Rails se detendría
  2. El servidor Ruby on Rails en realidad siguió funcionando (creo que se debió a que la VPN se desconectó), y tuve que hacer ps uxy 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 tmuxsi tengo que ejecutar un servidor Rails en él, para poder regresar y tmux a -t foovolver 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 commandpara 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

información relacionada