화면을 복원할 수 없습니다. 연결되어 있다고 표시됩니다.

화면을 복원할 수 없습니다. 연결되어 있다고 표시됩니다.

저는 원격 Debian Jessie 서버에서 작업하고 있습니다. 스크린 세션을 시작하고 스크립트 실행을 시작한 후 네트워크 시간 초과로 인해 연결이 끊어졌습니다.

이제 다시 로그인하여 세션을 재개하고 싶습니다.

목록 화면이 표시되면 다음과 같습니다.

$ screen -ls
There are screens on:
    30608.pts-8.myserver    (11/03/2015 08:47:58 AM)    (Attached)
    21168.pts-0.myserver    (11/03/2015 05:29:24 AM)    (Attached)
    7006.pts-4.myserver (10/23/2015 09:05:45 AM)    (Detached)
    18228.pts-4.myserver    (10/21/2015 07:50:49 AM)    (Detached)
    17849.pts-0.myserver    (10/21/2015 07:43:53 AM)    (Detached)
5 Sockets in /var/run/screen/S-me.

두 개의 화면에 동시에 연결된 것 같아요.

이제 이전에 실행한 세션을 재개하여 스크립트 결과를 확인하겠습니다.

$ screen -r 30608.pts-8.myserver
There is a screen on:
    30608.pts-8.OpenPrescribing (11/03/2015 08:47:58 AM)    (Attached)
There is no screen to be resumed matching 30608.pts-8.myserver.

왜 다시 연결할 수 없나요?

다른 화면에서도 동일한 문제가 있습니다.

$ screen -r 21168.pts-0.myserver
There is a screen on:
    21168.pts-0.OpenPrescribing (11/03/2015 05:29:24 AM)    (Attached)
There is no screen to be resumed matching 21168.pts-0.myserver.

답변1

세션은 여전히 ​​다른 터미널에 연결되어 있습니다. 서버는 아직 이 연결에서 네트워크 중단을 감지하지 못했습니다. 패킷 전송을 시도하고 시간 초과 후 오류를 수신했거나 응답이 없는 경우에만 중단을 감지했지만 아직 이런 일이 발생하지 않았습니다. 일반적으로 발생하는 상황은 클라이언트가 일부 입력을 보내려고 시도했지만 실패하여 중단을 감지했지만 서버는 입력을 기다리기만 하는 것입니다. 결국 서버는 연결 유지 패킷을 보내고 연결이 끊어졌음을 감지합니다.

또한 이 -d옵션을 사용하여 현재 터미널에서 screen 세션을 분리합니다.

screen -r -d 30608

screen -rd기존 스크린 세션에 연결하는 표준 방법과 거의 같습니다.

답변2

~에 따르면수동"복구"만 가능합니다탁월한화면:

'-ls [성냥]'
'-list [성냥]'
화면을 시작하지 않고 세션 식별 문자열 목록을 인쇄합니다(보통 pid.tty.host 형식입니다. 세션 이름 참조)."분리됨"으로 표시된 세션은 다음을 통해 복원할 수 있습니다.screen -r. "추가"라고 표시된 항목은 실행 중이며 제어 터미널이 있습니다. 세션이 다중 사용자 모드에서 실행 중인 경우 "다중"으로 표시됩니다. "접근할 수 없음"으로 표시된 세션은 다른 호스트에 있거나 작동하지 않습니다. 연결할 수 없는 세션은 해당 이름이 로컬 호스트 이름 또는 지정된 매개변수(있는 경우)와 일치하는 경우 중단된 것으로 간주됩니다. -r일치 항목을 만드는 방법에 대한 지침은 플래그를 참조하세요. "죽음"으로 표시된 세션은 철저하게 검토하고 삭제해야 합니다. 확실하지 않은 경우 시스템 관리자에게 문의하세요. 세션을 삭제하려면 "" 옵션을 사용하십시오 -wipe.

원하는 것은 이 옵션입니다.

'-x'
이미 다른 곳에 연결되어 있는 세션에 연결합니다(다중 디스플레이 모드). 화면은 자체 내부에서 부착되는 것을 거부합니다. 그러나 여러 화면을 계단식으로 연결하면 루프가 감지되지 않으므로 주의하세요.

답변3

screenoptions 에 추가하고 있습니다 -rD.

설명서를 참조하세요:

-D -r
Reattach a session. If necessary detach and logout remotely first. 

답변4

내가 아는 한 두 가지 방법이 있습니다.

  1. screen -rd <화면 이름/ID>

그러면 화면이 분리되고 다시 연결됩니다. 사전 연결된 사용자의 화면이 꺼집니다.

  1. screen -x <화면 이름/ID>

이렇게 하면 연결된 사용자를 종료하지 않고 화면에 직접 연결됩니다. 이는 주로 다중 사용자 디스플레이에 사용됩니다.

관련 정보