Estou executando o comando abaixo e monitorando o arquivo de saída no outro sistema:
ssh $ip_address 'for n in 1 2 3 4 5; do sleep 10; echo $n >>/tmp/count; done'
Se eu matar o comando ssh usando ^Cou apenas matando o terminal no qual estou conectado, esperaria que o comando remoto também terminasse. Porém, isso não acontece: /tmp/countobtém todos os números de 1 a 5 independentemente e ps -ejHmostra o shell e seu sleepfilho continuando em execução.
Esse comportamento é esperado e está documentado em algum lugar? Posso desativá-lo? Pela leitura, eu esperava ter que habilitar explicitamente esse tipo de comportamento com nohup, não para que seja o padrão.
Dei uma olhada nas páginas de manual para ssh e sshd, mas não vi nada óbvio, e o Google me aponta instruções para ativar esse comportamento, não para desativá-lo.
Estou executando o Red Hat Enterprise Linux 6.2, com um login root e um shell bash nos dois sistemas.
-ttvez de-tse o próprio ssh não tiver um tty alocado. O SSH não receberá um tty alocado se o ssh ficar em segundo plano imediatamente após a chamada, por meio de opções como-fou-n.