원격 데비안 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.
답변
세션은 여전히 다른 터미널에 연결되어 있습니다. 서버가 해당 연결에서 네트워크 중단을 감지하지 못했습니다. 패킷을 보내려고 할 때만 중단을 감지하고 시간 초과 후 오류가 발생하거나 응답이 없지만 아직 발생하지 않았습니다. 클라이언트가 입력을 보내려고했지만 실패했기 때문에 클라이언트가 정전을 감지 한 일반적인 상황에 있지만 서버가 입력 대기 중입니다. 결국 서버는 keepalive 패킷을 보내고 연결이 끊 겼음을 감지합니다.
그 동안 -d
옵션을 사용하여 화면 세션이있는 터미널에서 스크린 세션을 분리하십시오.
screen -r -d 30608
screen -rd
기존 화면 세션에 연결하는 표준 방법과 거의 같습니다.
답변
매뉴얼 에 따르면 분리 된 화면 만 “다시 시작”할 수 있습니다 .
‘ [match] ‘
‘ [match] ‘
화면을 시작하지 말고 대신 세션 식별 문자열 목록을 인쇄하십시오 (일반적으로 pid.tty.host 형식, 세션 이름 참조). ‘분리됨’으로 표시된 세션은로 다시 시작할 수 있습니다 . ‘첨부 됨’으로 표시된 항목이 실행 중이며 제어 터미널이 있습니다. 세션이 다중 사용자 모드에서 실행되면 ‘multi’로 표시됩니다. ‘도달 할 수 없음’으로 표시된 세션은 다른 호스트에 있거나 종료되었습니다. 도달 할 수없는 세션은 해당 이름이 로컬 호스트 이름 또는 지정된 매개 변수 (있는 경우)와 일치 할 때 사용하지 않는 것으로 간주됩니다. 참조-ls
-list
screen -r
-r
성냥을 구성하는 방법을 설명하는 플래그. ‘죽음’으로 표시된 세션은 철저히 확인하고 제거해야합니다. 확실하지 않은 경우 시스템 관리자에게 문의하십시오. ‘-wipe
‘옵션으로 세션을 제거하십시오 .
원하는 것은이 옵션입니다.
‘
-x
‘
다른 곳에 이미 연결된 세션에 연결합니다 (멀티 디스플레이 모드). 화면 자체에서 부착을 거부합니다. 그러나 여러 화면을 계단식으로 배열하면 루프가 감지되지 않습니다. 돌봐
답변
옵션이있는 화면에 첨부 -rD
수동에서 :
-D -r
Reattach a session. If necessary detach and logout remotely first.