아래 명령을 실행하고 다른 시스템에서 출력 파일을 모니터링하고 있습니다.
ssh $ip_address 'for n in 1 2 3 4 5; do sleep 10; echo $n >>/tmp/count; done'
^C
내가 로그인 한 터미널을 사용 하거나 사용하여 ssh 명령을 종료하면 원격 명령도 종료 될 것으로 예상됩니다. 그러나 이런 일이 발생하지는 않습니다. /tmp/count
1-5에 관계없이 모든 숫자를 가져오고 ps -ejH
쉘과 해당 sleep
자식이 계속 실행되는 것을 보여줍니다 .
이것이 예상되는 행동이며 어디에서나 문서화되어 있습니까? 비활성화 할 수 있습니까? 주변에서 읽은 결과, nohup을 사용하여 이러한 종류의 동작을 명시 적으로 활성화해야하지만 기본값이 아닙니다.
ssh 및 sshd에 대한 매뉴얼 페이지를 살펴 보았지만 명백한 점은 발견되지 않았으며 Google 은이 동작을 끄는 것이 아니라 켜는 방법을 지시합니다.
두 시스템 모두에서 루트 로그인과 bash 쉘을 사용하여 Red Hat Enterprise Linux 6.2를 실행하고 있습니다.
-tt
대신 사용하십시오-t
. ssh가-f
또는 같은 옵션을 통해 호출하자마자 백그라운드 화되면 SSH는 할당 된 tty를받지 않습니다-n
.