Proxy X Server에 GUI 프로세스를 연결할 수 있습니까?

Proxy X Server에 GUI 프로세스를 연결할 수 있습니까?

데스크탑이 충돌하고 응답하지 않는 상황이 발생했습니다. (제 경우에는 Cinnamon DE였습니다. cinnamon --replace아직 명령줄에서 시도하지 않았습니다. btw)

나는 대용량 파일을 다운로드하기 위해 다운로드 관리자 유형의 GUI 애플리케이션을 사용하고 있으며, GUI가 중단된 경우에도 프로세스는 여전히 매우 원활하게 실행됩니다. XI를 종료하면 모든 하위 프로세스가 종료되고 다운로드 등을 다시 시작해야 합니다.

프록시 X 세션을 생성하고 기존 GUI 프로세스를 분리하여 "가상" 세션에 연결하고 실제 X 세션을 다시 시작한 다음 마지막으로 GUI 프로세스를 새로운 일반 X 세션에 다시 연결할 수 있습니까? 그렇다면 어떻게 해야 할까요?

답변1

이론적으로 X 서버와의 연결이 끊어진 프로그램은 새 X 서버를 사용할 수 있을 때까지 다시 연결을 시도할 수 있습니다. 사실, 나는 이것을 수행하는 프로그램을 작성했습니다. 새 X 서버에서 리소스(창, 비트맵, 글꼴 등)를 다시 생성하려면 GUI 초기화 루틴을 다시 실행하고 이러한 새 리소스를 사용하려면 프로그램의 모든 내부 데이터 구조를 새로 고쳐야 하기 때문에 추가 코드가 필요합니다.

불행하게도 내가 본 X 프로그램 중 이 작업을 기꺼이 수행하는 프로그램은 거의 없습니다. 모든 재연결/재설정이 너무 많은 문제로 인해 충돌이 발생했습니다. 더욱 슬픈 점은 코드가 그래픽 리소스를 다시 초기화하기 때문에 X 서버를 전환하도록 속일 수 없다는 것입니다.존재하지 않는다그 프로그램에서. 따라서 대부분의 프로그램은 X 연결이 끊어지면 실패할 수밖에 없습니다.

XTaran이 언급했듯이 "xpra"라는 깔끔한 릴레이/심/에이전트가 있습니다. 이는 클라이언트에 대한 X 서버처럼 작동한 다음 해당 리소스를 다른 X 서버로 다시 초기화할 수 있습니다. 이를 통해 원하는 대로 X 서버 간에 모든 프로그램을 이동할 수 있습니다. . 10년 전에 사용했을 땐 버그가 많았어요. 그 이후로 진전이 있었다고 확신하지만 일상적인 데스크톱 사용에 충분히 안정적인지 알아야 합니다.

답변2

x0vncserver(Debian 및 Ubuntu 패키지에 있음 vnc4server)은 충돌이 발생했거나 최소한 액세스할 수 없는 X 세션에 다시 액세스하는 데 도움이 될 수 있습니다 x0vncserver display=:0.

그리고 거기에는XPula어느사용자가 로컬 컴퓨터에서 원격 X 응용 프로그램을 볼 수 있고 실행 중인 응용 프로그램의 상태를 잃지 않고 원격 컴퓨터에 대한 연결을 끊었다가 다시 연결할 수 있습니다.데비안의 xpra 패키지 설명에 따르면.

어쩌면 두 도구 중 하나가 도움이 될 수도 있습니다(도움을 주기에 너무 늦지 않은 경우).

관련 정보