Existe um comportamento definido do programa atual que está sendo executado quando nosso ssh é encerrado?

Existe um comportamento definido do programa atual que está sendo executado quando nosso ssh é encerrado?

Acho que no passado, digamos, se eu executasse o servidor Ruby on Rails (usando rails s) em um Bash para o qual fiz ssh e a conexão com a Internet fosse interrompida, então

  1. O servidor Ruby on Rails iria parar
  2. O servidor Ruby on Rails continuou funcionando (acho que foi devido à VPN desconectada), e eu tive que fazer um ps uxe depois matar todos os processos relacionados, um por um... foi um pouco confuso.

Poderia (1) ou (2) acontecer? Existe um comportamento bem definido? Por exemplo, se não for VPN, mas o ssh estiver desconectado, então (1), mas se for VPN, então (1) ou (2)?

PS: mudei para usar tmuxse precisar executar um servidor Rails nele, para poder voltar e tmux a -t fooanexar novamente a ele e pressionar CTRL-C se precisar.

Responder1

Sim, os processos associados ao shell recebem sinal hup. Eles podem ignorar, se programados dessa forma. Veja homem para nohup.

por exemplo, nohup commandpara executar o comando para que não ocorra nenhum problema. Mas também tem stdin, stdout, stderr redirecionado.

Veja também disown, e&

desconectar totalmentenohup > /dev/null command & disown

informação relacionada