쉘 스크립트에서 Ctrl+Z를 사용하여 SSH 세션을 일시 중지하는 방법은 무엇입니까?

쉘 스크립트에서 Ctrl+Z를 사용하여 SSH 세션을 일시 중지하는 방법은 무엇입니까?

SSH를 통해 원격 서버에서 실행되는 쉘 스크립트가 있습니다. 일시적으로 로컬 터미널로 돌아가려면 Ctrl+를 실행 Z하고 쉘 세션을 백그라운드에 두어야 합니다 .

다음 명령을 시도했습니다. (현재 쉘의 pid($$))

  1. suspend
  2. kill -s STOP $$
  3. killall -s STOP $$
  4. kill -s TSTP $$
  5. killall -s TSTP $$

그러나 아래와 같이 그 중 어느 것도 예상대로 작동하지 않습니다.

명령 1, 2, 3:
세션을 성공적으로 일시 중단했지만 명령 프롬프트가 다시 나타나지 않기 때문에 이후에는 아무것도 할 수 없습니다.

명령 4,5:
세션이 일시정지되지 않은 것 같은데, 실행 후 명령 프롬프트가 나타납니다.

이 문제를 해결할 방법이 있나요?

답변1

명령 1-3은 ssh 세션을 일시 중지하지 않지만 복구가 불가능할 수 있는 원격 셸을 일시 중지합니다.

원격 서버의 셸은 SSH 세션을 일시 중지할 수 없습니다. 이 작업은 키보드 입력 enter ~ ctrl+ 를 사용하여 로컬 측에서 수행해야 합니다 z. 이 키 시퀀스는 로컬 SSH에서 직접 읽고 자체를 일시 중지하도록 명령합니다.

로컬 시스템에서 다른 창을 열 수 있는데 왜 쉘 프롬프트를 얻기 위해 SSH 세션을 중단하는지 모르겠습니다.

관련 정보