실수로 X.org를 전환한 후 실행 중인 응용 프로그램에 다시 액세스하려면 어떻게 해야 합니까?

실수로 X.org를 전환한 후 실행 중인 응용 프로그램에 다시 액세스하려면 어떻게 해야 합니까?

그냥 우연히 쳤어요 CtrlAltBackspace. 이것은 분명히공격받은 X 서버. 화면이 잠시 깜박인 후 창 관리자가 다시 로그인하라는 메시지를 표시하고 빈 화면으로 돌아갑니다. Quick에서는 ps -ax내 앱이 여전히 실행 중이라고 표시하지만 해당 앱을 다시 포그라운드로 가져오는 방법을 모르겠습니다. ( fg <foo>아니요.)

실수로 X.org를 전환한 후 실행 중인 응용 프로그램에 다시 액세스하려면 어떻게 해야 합니까?

구성: 무료 BSD 11.2, i3-4.16, xorg-7.7_3.

답변1

X11 서버를 전환하고 다시 로그인한 후 UNIX X11 소켓이 /tmp/.X11-unix/X0삭제되고 다시 생성되었으며 X11 세션 쿠키가 ~/.Xauthority새로운 임의 쿠키로 대체되었습니다.

DISPLAY환경 변수의 값이 동일 하더라도 애플리케이션은 소켓을 닫았다가 다시 열고 쿠키를 다시 읽어야 합니다. 내가 아는 한 X11 응용 프로그램에 이 작업을 수행하도록 알리는 보편적인 메커니즘은 없습니다. 이는 단지 첫 번째 단계일 뿐입니다. 이후 응용 프로그램은 X11 서버를 사용하여 모든 창과 기타 GUI 개체를 완전히 다시 만들고 해당 상태를 프로그램의 내부 상태와 일치하도록 복원해야 합니다. 이 기능이 존재하지 않는 것 같아요.

가장 좋은 방법은 kill -HUP응용 프로그램을 중지하고 저장되지 않은 작업을 자동으로 저장할 수 있는 기회를 제공한 다음(그렇게 프로그래밍된 경우) 정상적으로 다시 시작하는 것입니다.

(이것은 실제로 신호의 원래 의미와 정확히 일치합니다 HUP. 원래는 사용자의 유선 모뎀 연결이 끊겼으며 애플리케이션이 새 세션에서 재개한 다음 내보낼 수 있도록 저장되지 않은 모든 작업을 어떻게든 저장해야 함을 의미했습니다.)

관련 정보