'손실 된'스크린 세션을 복구하는 방법?


80

어떻게 든 화면을 '감지'하지 않고 화면 창을 닫을 수 있었으므로 세션은 여전히으로 표시됩니다 attached. 이렇게하면이 세션에 다시 연결되지 않습니다. 내가 무엇을 할 수 있을지?

me@iupr-serv8:~$ screen -r
There are several suitable screens on:
    25028.pts-19.XXX-serv8  (01/05/2012 07:15:34 PM)    (Attached)
    24658.pts-19.XXX-serv8  (01/05/2012 07:11:38 PM)    (Detached)
    24509.pts-19.XXX-serv8  (01/05/2012 07:10:00 PM)    (Detached)
    18676.pts-5.XXX-serv8   (01/02/2012 06:55:33 PM)    (Attached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
me@XXX-serv8:~$ screen -r 25028
There is a screen on:
    25028.pts-19.XXX-serv8  (01/05/2012 07:15:33 PM)    (Attached)
There is no screen to be resumed matching 25028.

[최신 정보]

결국 세션이 손실되지 않았지만 첫 번째 세션의 ID는 0입니다. 두 번째 세션보다 ID가 1있습니다.

답변:


108

로 먼저 분리 해보십시오 screen -d. 그래도 문제가 해결되지 않으면 강조 순서대로 시도해보십시오 .

   -d|-D [pid.tty.host]
        does  not  start screen, but detaches the elsewhere running screen session. It has the
        same effect as typing "C-a d" from screen's controlling terminal. -D is the equivalent
        to  the  power  detach key.  If no session can be detached, this option is ignored. In
        combination with the -r/-R option more powerful effects can be achieved:

   -d -r   Reattach a session and if necessary detach it first.

   -d -R   Reattach a session and if necessary detach or even create it first.

   -d -RR  Reattach a session and if necessary detach or create it. Use the first  session  if
           more than one session is available.

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

   -D -R   Attach  here and now. In detail this means: If a session is running, then reattach.
           If necessary detach and logout remotely first.  If it was not running create it and
           notify the user. This is the author's favorite.

   -D -RR  Attach here and now. Whatever that means, just do it.

11
-d -r옵션은 함께 세션을 첨부 강제 할 것이다.
Tim Kennedy

항상 screen -x여러 위치에서 한 번에 연결할 수 있도록 항상 사용 합니다. 물론 실수로 창을 닫으면 -d -r물건을 깔끔하게 유지하는 것이 좋습니다.
mpontillo

5
screen -r '1234.somescreensession'

화면이 있습니다 :

1234.somescreensession (연결됨)

1234.somescreensession과 일치하는 화면을 다시 시작할 수 없습니다.

다음은 해당 화면 세션을 되 찾는 간단한 방법입니다.

screen -D -r '1234.somescreensession'

4

내 ssh 연결이 메시지와 함께 예기치 않게 종료 후 나는 같은 문제를 경험 Write Failed: broken pipe나는 화면 세션이 붙어 있었을 때. 그러나 위의 명령을 사용하여 화면 세션을 다시 연결할 수 없습니다. 다음 버전을 사용합니다.

~> screen --version
Screen version 4.00.03 (FAU) 23-Oct-06

분명히 sshd실행중인 인스턴스가 있었기 때문에 세션을 분리했다가 다시 연결하지 못했습니다. 를 식별 한 후 PID적절한 인스턴스의 sshdkill를 보내고 난과 함께 다시 부착 할 수 있었다 screen -r.


단지 정보를 위해 : 당신은 확실히 하나 이상의 sshd악마를 찾을 것입니다 , 하나는 현재 로그인에 해당하고 다른 하나는 오래된 screen세션에 속할 것입니다 (사실, 여러 다른 sshds가 다른 여러 s에 속할 수 있습니다 screen).


나는 같은 문제를
호소했다

3

때로는 여러 화면이 백그라운드에서 실행되고 있습니다.

다음과 같이 재개 할 수 있습니다.

screen -r [pid]

화면을 얻으려면 screen -R먼저을 실행하면으로 다시 시작한 후 화면의 모든 실행중인 PID가 표시됩니다 screen -r [pid].

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