X 세션 관리자
X session managerX 창 시스템에서 X 세션 매니저는 세션 관리 프로그램이며, 윈도우 매니저를 포함하여 실행 중인 애플리케이션 세트의 현재 상태를 저장하고 복원할 수 있는 프로그램이다.
개요
X 세션 관리자의 관점에서 세션은 주어진 시간의 "데스크톱 상태" 즉, 현재 내용이 있는 창 집합이다.보다 정확히 말하면 세션은 이러한 창을 관리하거나 이와 관련된 클라이언트 집합이며, 필요한 경우 이러한 응용 프로그램이 이러한 창의 상태를 복원할 수 있도록 하는 정보다.
세션 관리자를 사용할 때 가장 인지할 수 있는 효과는 대화형 세션에서 로그아웃한 다음 다시 로그인할 때 동일한 상태에서 정확히 동일한 창을 찾을 수 있는 가능성이다.이를 위해 세션 관리자 프로그램은 로그아웃 시 실행 중인 응용 프로그램 이름을 저장하고 로그인 시 다시 시작한다.더욱이 (창문의 내용을 복원하는 데 필요한) 애플리케이션의 상태도 복원되려면, 애플리케이션은 세션 관리자로부터 요청 시 실행 상태를 저장한 후 다시 시작할 때 다시 로드할 수 있어야 한다.
일반적으로 사용자가 로그인하거나 로그아웃하지 않더라도 세션은 언제든지 저장하거나 로드할 수 있다.사용자가 원하는 대로 여러 개의 세션을 저장하고 그 중 하나를 로드하는 것도 가능하다.세션은 세션을 구성하는 응용프로그램 목록을 제공하여 지정할 수도 있다.결과적으로, 사용자는 현재 실행 중인 응용프로그램의 실행 상태를 저장하거나 세션을 구성하는 응용프로그램을 명시적으로 나열하여 서로 다른 세션 집합을 저장할 수 있다.이러한 방식으로 사용자는 나중에 지정된 세션을 로드하기로 결정할 수 있다.
XSMP 프로토콜
세션이 애플리케이션의 상태를 포함하기 위해서는 세션 관리자가 요청할 때(일반적으로 사용자 로그인 또는 로그아웃 시) 애플리케이션이 현재 상태를 저장하고 로드할 수 있어야 한다.XSMP(X Session Management Protocol)라는 이름의 프로토콜은 애플리케이션과 세션 관리자가 상호 작용하는 방법을 명시한다.XSMP 메시지 형식은 ICE(Interactive Connectivity Setup) 메시지 형식과 동일하다.[1]특히 중요한 것은 윈도우 관리자가 윈도우의 배치와 아이콘의 존재에 대한 책임을 지고 있기 때문에 세션 매니저와 소통할 수 있다는 점이다.상태를 저장할 수 없는 애플리케이션은 세션에 포함될 수 있지만 세션 전체에 걸쳐 상태를 보존하지는 않는다.
프로토콜
XSMP는 클라이언트 간 교환 프로토콜의 하위 프로토콜이다.클라이언트는 세션 관리자에 연결하여 프로토콜을 시작한다.세션 관리자가 네트워크에 위치한 방식: POSIX 시스템에서 환경에는 변수가 포함되어 있음SESSION_MANAGER따라서 클라이언트가 실행될 때 클라이언트의 환경은 적절한 값을 가진 이 변수를 포함해야 한다.
식별자
이 의정서는 다음의 두 가지 사실을 고려한다.
- 세션이 올바르게 재시작되려면 세션에서 실행 중인 응용프로그램을 재시작해야 할 뿐만 아니라 이전 상태를 복원하는 방식으로 재시작해야 한다.
- 동일한 애플리케이션이 동일하거나 다른 세션에서 두 번 이상 실행될 수 있다.
동일한 애플리케이션의 다른 인스턴스는 동일한 세션 또는 다른 세션에서 동시에 활성화될 수 있으며, 이러한 인스턴스는 실행 상태가 다를 가능성이 높다.예를 들어, 사용자가 파일에서 텍스트 편집기를 시작했을 수 있음/etc/passwd, 그 다음 파일에.letter.txt같은 세션에 있는 다음 파일에 있는todo.txt다른 회기에
세션이 제대로 복원되려면 세션 관리자가 동일한 응용프로그램의 다른 인스턴스를 다른 인스턴스로 인식해야 한다.이러한 이유로 세션 관리자는 각 응용 프로그램의 각 인스턴스에 대해 고유한 식별자를 선택한다.이렇게 하면 세션 관리자는 실행 중인 텍스트 편집기를 구별할 수 있다./etc/passwd텍스트 편집기가 실행 중인 경우todo.txt같은 프로그램의 두 인스턴스일지라도.
식별자는 고유해야 한다.특히 세션 관리자가 관리하는 모든 세션에서 고유해야 한다. 즉, 실행 중인 텍스트 편집기의 식별자/etc/passwd실행 중인 동일한 텍스트 편집기와 다를 뿐 아니라letter.txt그러나 텍스트 편집기가 실행되는 것과도 다르다.todo.txt다른 회기에클라이언트의 식별자는 세션을 종료하고 다시 시작해도 동일하게 유지된다.
프로토콜의 주요 부분
세션 관리 프로토콜의 주요 부분은 다음과 같다.
- 세션 관리자는 모든 클라이언트에 대해 고유한 식별자를 선택하십시오.
- 세션 관리자는 클라이언트에 상태를 저장하도록 요청
- 클라이언트는 상태를 복원하기 위해 상태를 다시 시작해야 하는 방법(예: 프로세스를 시작하는 데 사용할 명령줄)을 지정하십시오.
세션 관리자가 모든 클라이언트에 대해 일련의 속성을 유지하므로(X 윈도우 시스템 용어에서 속성은 단순히 데이터를 위한 컨테이너일 뿐이다) 마지막 지점이 가능하다.이 정보들은 고객이 언제든지 수정할 수 있다.다음 속성 중 하나가 명명됨RestartCommand그리고 클라이언트를 다시 시작해야 하는 방법에 대한 정보를 포함하고 있다.
세션 관리자가 클라이언트에 상태 저장을 요청하면 신청은 다음과 같이 진행된다.
- 그것은 그것의 상태를 구별할 수 있는 방식으로 저장한다; 예를 들어, 그것의 이름에 그것의 식별자가 포함된 파일에 상태를 저장함으로써 얻을 수 있다.
- 그것은 어떻게 다시 시작해야 하는지에 대한 사양을 다음에 저장한다.
RestartCommand속성. 이 속성은 다음과 같은 이유로 클라이언트 식별자를 포함해야 한다.- 응용 프로그램이 다시 시작할 때 식별자를 유지해야 함
- 식별자는 상태를 복원하는 데 필요함(예를 들어, 상태가 저장된 파일을 찾는 데 필요함)
세션 관리자가 옆에 다른 속성을 유지 관리RestartCommand예를 들어 세션이 파괴된 경우 속성에서 응용 프로그램을 실행하는 방법을 지정하십시오.
로컬 및 글로벌 상태
클라이언트에 상태 저장을 요청할 때 윈도우 관리자는 로컬 또는 글로벌 상태(또는 둘 다)를 저장해야 하는지 여부를 지정할 수 있다.차이점은 저장 결과를 다른 응용 프로그램에 표시해야 하는지 여부다.
텍스트 편집기의 경우, 글로벌 상태를 저장한다는 것은 파일을 정상적으로 저장하는 것을 의미하므로 다른 응용 프로그램이 파일의 새 버전을 사용할 수 있다.로컬 상태를 저장한다는 것은 파일의 로컬 사본을 저장해야 다른 응용 프로그램이 원본에서 파일을 볼 수 있다는 것을 의미한다.
예
다음은 가상 텍스트 편집기와 세션 관리자 상호 작용의 주요 단계들이다.xyz이 응용 프로그램이 세션에서 처음 시작되면 사용자가 로그아웃한 다음 다시 로그인하십시오.
- 응용 프로그램은 클라이언트 간 교환 프로토콜을 통해 세션 관리자에 연결됨
- 응용 프로그램은 세션 관리자에게 이번이 처음 시작되므로 이전 식별자가 없음을 알려준다(따라서 이전 상태는 없음).
- 세션 관리자는 클라이언트에게 고유 식별자를 전송하여 응답한다.
4324; - 세션 관리자는 즉시 클라이언트에 로컬 상태를 저장하도록 요청(클라이언트가 처음 시작되었다고 해서만)
- 클라이언트가 명령줄을 저장함
xyz -sid 4324재산으로서RestartCommand세션 관리자(이 또한 시스템에 종속됨: POSIX 시스템에서 이 속성은 실제로 argv 어레이를 포함함) - 클라이언트는 상태를 로컬로 저장한다. 예를 들어, 편집된 파일의 이름과 다른 모든 정보(예: 현재 줄)를 로컬 파일에 저장할 수 있다.
.temp-4324 - 사용자가 로그아웃하면 세션 관리자는 모든 클라이언트에 상태를 저장해야 함을 알리는 메시지를 발송함
- 고객.
4324다시 준수하다 - 모든 클라이언트가 세션 관리자에게 상태가 저장됨을 통지하면 세션 관리자는 세션을 종료하십시오.
클라이언트가 상태를 저장하라는 지시를 받으면 사용자와 제한된 상호작용을 할 가능성이 있거나 하지 않을 수 있다(예를 들어 편집된 파일을 저장할지 사용자에게 묻는 것).어쨌든, 상태는 저장된다. 그것은 세션 관리자에게 적절한 메시지를 보내면서 알려준다.
세션이 다시 시작되면 다음과 같은 작업이 수행된다.
- 세션 관리자가 클라이언트 재시작
4324속성에 저장된 항목을 실행함으로써RestartCommand고객 관련4324 - 따라서 신청은 다음과 같이 시작된다.
xyz -sid 4324; 이러한 방식으로 애플리케이션은 식별자를 알 수 있다. - 응용 프로그램은 파일에서 상태 정보를 검색한다.
.temp-4324 - 응용프로그램이 식별자를 지정하는 세션 관리자에 연결
4324세션 관리자가 이 클라이언트가 새 클라이언트가 아니라 이전 클라이언트를 다시 시작하는 것임을 알 수 있도록
클라이언트 관리 세션
XSMP 프로토콜에 따르면 세션 매니저는 다른 애플리케이션의 상태를 실행하고 제어하는 임의의 프로그램(서버)이다.결과적으로, 클라이언트 자체는 다른 클라이언트의 세션 관리자가 될 수 있다.예를 들어, 메일 클라이언트는 이메일 작성을 위해 텍스트 편집기를 시작할 수 있으며, 편집자와 관련하여 세션 관리자 역할을 할 수 있다.이렇게 해서 메일 클라이언트를 닫았다가 다시 시작하면 텍스트 편집기의 상태를 복원할 수 있다.[citation needed]
구현
X Window 시스템에는 다음과 같은 기본 세션 관리자가 포함되어 있음xsm다른 세션 관리자는 특정 데스크톱 환경을 위해 개발되었다.
KDE
ksmserverKDE Plasma 5 Desktop 환경의 기본 세션 관리자.[2][3]
Xfce
xfce4-sessionXfce 기반 DEs의 기본 X Session Manager 프로그램은 시작 시 다양한 세션을 생성하고 선택할 수 있다.[4][5]
그노메
gnome-sessionGnome DE의 기본 세션 관리자. Gnome은 v1.x. 2013 GNOME이 버전 2.24에서 GNOME 세션 관리자 XSMP를 D-Bus 인터페이스로 대체하려는 의도를 가진 이후 XSMP를 지원해왔다.[6]결국 두 인터페이스를 결합하고 레거시 애플리케이션을 위한 어댑터(클라이언트)를 제공하기로 결정했다.[7]그러나 당시에는 기능이 완전하지 않았고 GNOME이 아닌 애플리케이션에서도 사용되지 않았다.[8]2021년 현재 코드베이스에는 여전히 X 세션 관리자 클라이언트가 포함되어 있다.
참고 항목
참조
- ^ "X Session Management Protocol". www.x.org. Retrieved 2020-12-02.
- ^ "KDE Desktop User Guide - KSMServer". www.linuxtopia.org. Retrieved 2021-10-05.
- ^ "ksmserver · master · Plasma / Plasma Workspace". GitLab. Retrieved 2021-10-05.
- ^ "xfce:xfce4-session:start [Xfce Docs]". docs.xfce.org. Retrieved 2021-10-05.
- ^ "xfce:xfce4-session:preferences [Xfce Docs]". docs.xfce.org. Retrieved 2021-10-05.
- ^ "Projects/SessionManagement/GnomeSession - GNOME Wiki!". wiki.gnome.org.
- ^ "Projects/SessionManagement/NewGnomeSession - GNOME Wiki!". wiki.gnome.org. Retrieved 2021-10-05.
- ^ "Chapter 6 Session Management (GNOME 2.0 Desktop for the Solaris Operating Environment System Administration Guide)". docs.oracle.com. Retrieved 2021-10-05.
외부 링크
- X 세션 관리 프로토콜
- xsm 수동 페이지
- KS서버, KDE 세션 관리자
- ROX-Session, ROX Desktop 세션 관리자