이미 첨부되어 있는데 화면을 다시 시작할 수 없습니까?


151

원격 데비안 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.

답변:


241

세션은 여전히 ​​다른 터미널에 연결되어 있습니다. 서버가 해당 연결에서 네트워크 중단을 감지하지 못했습니다. 패킷을 보내려고 할 때만 중단을 감지하고 시간 초과 후 오류가 발생하거나 응답이 없지만 아직 발생하지 않았습니다. 클라이언트가 입력을 보내려고했지만 실패했기 때문에 클라이언트가 정전을 감지 한 일반적인 상황에 있지만 서버가 입력 대기 중입니다. 결국 서버는 keepalive 패킷을 보내고 연결이 끊 겼음을 감지합니다.

그 동안 -d옵션을 사용하여 화면 세션이있는 터미널에서 스크린 세션을 분리하십시오.

screen -r -d 30608

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


15
기존 화면 세션에 연결하려면, 그것의 screen -x, screen -rd에서를 분리 한 후에 연결하는 모든 이에 부착 된 터미널. OP의 경우, 후자가 선호되는 것으로 생각하지만 일반적인 경우에는 반드시 그렇지는 않습니다. 나는 일반적으로 -xR첨부 할 것이 없다면 첨부하거나 만들 때 사용합니다.
Stéphane Chazelas

10

매뉴얼 에 따르면 분리 된 화면 만 "다시 시작"할 수 있습니다 .

' [match] ' ' [match] ' 화면을 시작하지 말고 대신 세션 식별 문자열 목록을 인쇄하십시오 (일반적으로 pid.tty.host 형식, 세션 이름 참조). '분리됨'으로 표시된 세션은로 다시 시작할 수 있습니다 . '첨부 됨'으로 표시된 항목이 실행 중이며 제어 터미널이 있습니다. 세션이 다중 사용자 모드에서 실행되면 'multi'로 표시됩니다. '도달 할 수 없음'으로 표시된 세션은 다른 호스트에 있거나 종료되었습니다. 도달 할 수없는 세션은 해당 이름이 로컬 호스트 이름 또는 지정된 매개 변수 (있는 경우)와 일치 할 때 사용하지 않는 것으로 간주됩니다. 참조-ls
-list
screen -r-r성냥을 구성하는 방법을 설명하는 플래그. '죽음'으로 표시된 세션은 철저히 확인하고 제거해야합니다. 확실하지 않은 경우 시스템 관리자에게 문의하십시오. ' -wipe'옵션으로 세션을 제거하십시오 .

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

' -x'
다른 곳에 이미 연결된 세션에 연결합니다 (멀티 디스플레이 모드). 화면 자체에서 부착을 거부합니다. 그러나 여러 화면을 계단식으로 배열하면 루프가 감지되지 않습니다. 돌봐


4
함께 -x세션 여전히 '어딘가'첨부됩니다. 세션을 완전히 인수하려면 -r | -R (다시 옵션)과 함께 -d | -D (분리 옵션)를 사용해야합니다.
앤드류 코즐 로프

1
이는 대안이지만 OP에 필요한 것은 아닙니다. 여러 위치에서 자주 첨부합니다.
토마스 디키

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.