![쉘 스크립트에서 Ctrl+Z를 사용하여 SSH 세션을 일시 중지하는 방법은 무엇입니까?](https://linux55.com/image/201331/%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C%20Ctrl%2BZ%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20SSH%20%EC%84%B8%EC%85%98%EC%9D%84%20%EC%9D%BC%EC%8B%9C%20%EC%A4%91%EC%A7%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
SSH를 통해 원격 서버에서 실행되는 쉘 스크립트가 있습니다. 일시적으로 로컬 터미널로 돌아가려면 Ctrl+를 실행 Z하고 쉘 세션을 백그라운드에 두어야 합니다 .
다음 명령을 시도했습니다. (현재 쉘의 pid($$))
suspend
kill -s STOP $$
killall -s STOP $$
kill -s TSTP $$
killall -s TSTP $$
그러나 아래와 같이 그 중 어느 것도 예상대로 작동하지 않습니다.
명령 1, 2, 3:
세션을 성공적으로 일시 중단했지만 명령 프롬프트가 다시 나타나지 않기 때문에 이후에는 아무것도 할 수 없습니다.
명령 4,5:
세션이 일시정지되지 않은 것 같은데, 실행 후 명령 프롬프트가 나타납니다.
이 문제를 해결할 방법이 있나요?
답변1
명령 1-3은 ssh 세션을 일시 중지하지 않지만 복구가 불가능할 수 있는 원격 셸을 일시 중지합니다.
원격 서버의 셸은 SSH 세션을 일시 중지할 수 없습니다. 이 작업은 키보드 입력 enter ~ ctrl+ 를 사용하여 로컬 측에서 수행해야 합니다 z. 이 키 시퀀스는 로컬 SSH에서 직접 읽고 자체를 일시 중지하도록 명령합니다.
로컬 시스템에서 다른 창을 열 수 있는데 왜 쉘 프롬프트를 얻기 위해 SSH 세션을 중단하는지 모르겠습니다.