화면에서 irssi를 사용하고 있었지만 연결이 끊어졌습니다. 서버에 다시 접속 한 후에는 더 이상 해당 화면에 연결할 수 없습니다. screen -ls는 화면이 이미 연결되었음을 나타냅니다.
화면 -D 를 강제로 분리 하려고 시도했지만 분리가 발생했지만 screen -ls는 여전히 연결되어 있다고 말합니다. screen -x를 시도했는데 거기에 중단됩니다.
[sub@server ~]$ screen -ls
There are screens on:
4033.poe (Detached)
7728.irssi (Attached)
2 Sockets in /var/run/screen/S-sub.
내가 지금 무엇을 할 수 있을까?
답변
‘Attached (연결됨)’화면을 연결하려는 경우을 실행하십시오 screen -xr irssi
. 대문자 ‘-X’는 화면 세션 중 하나에 명령을 보내고, 소문자 ‘-x’옵션을 사용하면 연결된 세션에 다시 연결할 수 있습니다. 그러나 세션 이름이 둘 이상 있으므로 여전히 세션 이름을 지정해야합니다.
답변
스크린 세션을 시작한 셸 을 종료 하여 과거에이 동작을 해결했습니다 . 기본적으로 화면에서 소유 하지 않은 사용자의 모든 배쉬 인스턴스를 종료 합니다.
답변
기본 이름이 아닌 이름을 지정했습니다. 이 시도:screen -RD irssi
답변
당신은 시도 할 수 있습니다:
#Reattach a session and if necessary detach it first.
screen -d -r 7728.irssi
#Reattach a session. If necessary detach and logout remotely first.
screen -D -r 7728.irssi
항상 전체 이름을 사용하는 것이 좋습니다 pid.tty
답변
screen
버전간에 이전 버전과 호환되지 않는 것으로 알려져 있습니다. 서버에서 버전 screen
이 업데이트 된 경우 더 이상 이전 화면 세션에 다시 연결하지 못할 수 있습니다.
이 경우 이전 SCREEN 바이너리를 사용하여 다시 배포하거나 (배포 패키지 관리자가 저장 한 경우) 세션을 완전히 종료 할 수 있습니다.
답변
GNU / 스크린 프로세스에 SIGCHLD (창을 닫을 때 일반적으로 수신 됨)를 보내서 성공하면 소켓 파일을 만지거나 다시 만들 수 있습니다.
또한 screen
경우에만 다른 두 가지 실행 파일 을 호출하는 두 가지 방법이 있습니다 . SCREEN
다시 연결하려는 서버 측 구성 요소 screen
이고 터미널과 서버 측 사이에서 데이터를 섞는 클라이언트 측입니다. 따라서 소문자 버전을 죽이려고 할 수 있습니다 …
예를 들어 다음에서 내 프로세스 screen
와 SCREEN
프로세스가 부모 및 자식으로 간주되지 않아 기존 세션에 연결되었음을 나타냅니다.
# ps fao pid,command
25070 SCREEN -U
25071 \_ vim +let &t_Co=256
25073 \_ -bash
25077 \_ -bash
...
18364 \_ sshd: username [priv]
18366 | \_ sshd: username@pts/17
18367 | \_ -bash
870 | \_ screen -U -x
새로운 세션은 다음과 같습니다.
19645 | \_ screen -S MySession
19646 | \_ SCREEN -S MySession
19647 | \_ bash
1485 | | \_ python
19700 | \_ bash
답변
세션이 멈추고 연결을 끊은 vi를 사용하는 동안 이런 일이 발생했습니다. screen -Arx를 사용하여 화면에 다시 연결하려고하면 프로세스가 중단됩니다.
비슷한 하위 프로세스가 실행되어 화면이 중단 될 수 있습니다. 특히 그것에 중점을 두는 경우 화면에서 실행중인 하위 프로세스 목록을 얻으려면 다음을 수행하십시오.
ps ux -H
중첩 된 자식 프로세스가 표시됩니다.
zwood 28481 0.0 0.0 101148 8844 ? Ss Oct07 1:36 SCREEN -S mysession
zwood 28482 0.0 0.0 67436 1744 pts/2 Ss+ Oct07 0:00 /bin/bash
zwood 28515 0.0 0.0 67556 1876 pts/4 Ss+ Oct07 0:00 /bin/bash
zwood 4498 0.0 0.0 67436 1772 pts/5 Ss Oct07 0:00 /bin/bash
zwood 2007 0.0 0.0 73604 1324 pts/5 S+ 15:47 0:00 vi /home/zwood/.bashrc.custom
zwood 14670 0.0 0.0 67436 1768 pts/13 Ss+ Oct14 0:00 /bin/bash
zwood 27002 0.0 0.0 67436 1720 pts/11 Ss+ Oct20 0:00 /bin/bash
zwood 24748 0.0 0.0 67432 1712 pts/14 Ss+ Oct21 0:00 /bin/bash
처음에 문제를 일으킨 vi 프로세스를 종료 한 후 아무 문제없이 화면을 다시 연결할 수있었습니다. 화면에 다시 연결된 이전 프로세스를 종료하는 것도 좋은 생각입니다. 그냥 사용하십시오 :
kill -9 <pid>
내부에서 어떤 화면이 작동하는지, 왜 vi가 화면을 멈추게했는지, vi 프로세스를 종료하면 화면이 다시 나타나는 이유를 모르겠습니다. 나는 과거에 스크린 에서이 문제에 부딪 쳤고 대부분의 사람들 이이 스레드에서 권장하지 않는 것을 운없이 시도했습니다. 이 문제를 찾는 것은 자식 프로세스가 나를 위해 일한 유일한 일입니다.