Se mv
foi iniciado como:
ssh host mv x y
Em seguida mv
, receberá um SIGPIPE (e morrer) se tentar gravar algo em stdout ou stderr (como uma mensagem de erro).
Se você iniciou uma sessão interativa como:
ssh host
E iniciado a mv
partir do shell interativo, quando o lado mestre do pseudo-terminal iniciado sshd
será fechado (ao ssh
fechar a conexão TCP na saída), o líder da sessão associado ao lado escravo do pseudo-terminal, que é o shell interativo remoto, receberá um sinal SIGHUP (desligue).
Ao receber esse sinal, os shells (a menos que você tenha emitido a trap '' HUP
) normalmente encaminham esse sinal para todos os processos nos trabalhos que eles iniciaram, a menos que você tenha dito explicitamente para não fazer isso (como com disown
ou com &|
alguns shells).
Outros processos (como mv
) geralmente morrem ao receber esse sinal, a menos que tenham sido instruídos a ignorá-lo (usando nohup
ou se seus pais o ignoraram).
Se você emitiu um:
trap '' HUP
Todos os trabalhos iniciados depois dele o herdarão e ignorarão o SIGHUP.
O shell não morre do sinal SIGHUP enviado após a desconexão, mas sai no próximo prompt, pois seu stdin se foi. Na saída, algumas conchas enviam SIGHUP para seus trabalhos (não renegados). Aqueles que começaram depois que o trap '' HUP
ignoram, os outros vão morrer.
Em resumo, nesse caso, a menos que você tenha tomado precauções prévias para que isso não aconteça, você mv
morrerá.
Para evitá-lo da próxima vez, se estiver usando tcsh
, zsh
ou bash
, antes de desligar a máquina, pressione Ctrl-Zpara suspender mv
, entrar bg
para retomá-lo no fundo, e disown
para deserdá -lo.
Ou você pode usar screen
ou tmux
. Em um SIGHUP, esses itens serão desconectados do terminal host agora desativado, mas os aplicativos executados no terminal que ele emula continuarão funcionando sem cabeça e você poderá reconectar a sessão a outro terminal posteriormente para ver como mv
foi.
Ou use-o nohup mv
para tornar-se mv
imune ao SIGHUP e ter sua saída e erros em um nohup.out
arquivo que você pode verificar mais tarde.
Agora, eu não sei sobre o seu provedor de hospedagem específico, mas com alguns, quando você ssh
entra na instância, não está iniciando sessões de shell por lá, mas sim anexado ao console, ou seja, a uma sessão que já foi iniciada e, quando você sai, não encerra a sessão, apenas desanexa-a. Portanto, o shell não mata, nem o mata mv
. Se for esse o caso, você notará que a ps
execução a partir daí daria o mesmo pid
para o seu shell em duas ssh
sessões separadas .