화면에 연결할 때 -r과 -x의 차이점은 무엇입니까?

화면에 연결할 때 -r과 -x의 차이점은 무엇입니까?

오늘 저는 친구와 제가 화면에 연결하는 데 서로 다른 방법을 사용한다는 사실을 발견했습니다. 나는 테이블을 사용해왔고 -x그는 -r.man 페이지를 읽었지만 다른 결과를 생성하는 테스트 사례를 생각해낼 수 없습니다.

동일한 계정에서 두 개의 콘솔을 열고 -r및를 사용하여 성공적으로 연결했습니다 -x.

이들명령의 차이점은 무엇인가요?

이미 연결되어 있는 동일한 화면에 연결하려고 하면 다른 오류 메시지만 표시됩니다.

$ screen -r 1486
There is no screen to be resumed matching 1486.

그리고

$ screen -x 1486
Attaching from inside of screen?

답변1

https://www.gnu.org/software/screen/manual/screen.html#Invoking-Screen

-x이미 세션에 연결되어 있는 경우에도 세션에 연결하십시오.

-r현재 세션에 연결된 클라이언트가 없는 경우에만 세션에 연결합니다.

테스트하고 싶다면(현재 수행 중인 테스트가 screen 세션 내에서 screen 세션에 연결하려고 시도하는 것처럼 들리므로 절대 수행해서는 안 됨) 두 개의 별도 터미널 세션이 필요합니다. . 먼저 screen을 실행하여 screen 세션을 시작하고 연결합니다. 두 번째에서는 다음을 수행합니다 screen -r.

screen -r
There is a screen on:
    562503.pts-2.E595   (Attached)
There is no screen to be resumed.

이제 이 작업을 수행 screen -x하면 세션에 연결됩니다. 두 개의 터미널을 나란히 배치하면 한 터미널에서 수행하는 작업이 다른 터미널에서도 표시된다는 점을 알 수 있습니다.

즉, -r분리된 세션을 연결하는 경우 -x다른 세션을 분리하지 않고 연결된 세션에 연결하는 것입니다.

관련 정보