Estoy ejecutando el siguiente comando y monitoreando el archivo de salida en el otro sistema:
ssh $ip_address 'for n in 1 2 3 4 5; do sleep 10; echo $n >>/tmp/count; done'
Si elimino el comando ssh usando ^C
o simplemente eliminando el terminal en el que he iniciado sesión, esperaría que el comando remoto también finalice. Sin embargo, esto no sucede: /tmp/count
obtiene todos los números del 1 al 5 independientemente y ps -ejH
muestra que el shell y su sleep
hijo continúan ejecutándose.
¿Es este comportamiento esperado y está documentado en alguna parte? ¿Puedo desactivarlo? Después de leer, esperaba tener que habilitar explícitamente este tipo de comportamiento con nohup, no para que sea el predeterminado.
He echado un vistazo a las páginas de manual de ssh y sshd, pero no vi nada obvio, y Google me señala las instrucciones para activar este comportamiento, no para desactivarlo.
Estoy ejecutando Red Hat Enterprise Linux 6.2, con un inicio de sesión raíz y bash shell en ambos sistemas.
-tt
lugar de-t
si ssh no tiene un tty asignado. SSH no obtendrá un tty asignado si ssh se pone en segundo plano inmediatamente después de la invocación mediante opciones como-f
o-n
.