loginctl에서 그래픽 tty를 결정하는 방법

loginctl에서 그래픽 tty를 결정하는 방법

Loginctl은 많은 세션을 나열하며 어느 세션이 그래픽 세션인지 프로그래밍 방식으로 알고 싶습니다(예: GNOME 데스크탑).

아래 예에서는 GNome 데스크탑 세션, SSH 연결 및 텍스트 세션(getty)을 열었습니다.

$ loginctl
SESSION  UID USER SEAT  TTY  
      3 1000 user seat0 tty2
    237 1000 user       pts/2
    260 1000 user seat0 tty3

3 sessions listed.
$ 

Ctrl+Alt+F2를 사용하여 tty2로 전환할 수 있기 때문에 tty2가 GNome 세션인 것으로 추측할 수 있습니다. tty3은 텍스트 세션입니다(Ctrl+Alt+F3). pts/2는 나머지 SSH 세션입니다. 그러나 프로그램은 어느 것이 어느 것인지 어떻게 알 수 있습니까?


참고: 다음 방법은 엄격하지 않기 때문에 해결책이 될 수 없다고 생각합니다. 사용자는 아마도 새 tty를 열고 /usr/libexec/gdm-x-session을 실행할 수 있으며, 이는 내 프로그램을 속일 것입니다.

방법 1: 실행 ps -aux | grep /usr/libexec/gdm-x-session하고 보기:

... tty2     Sl+  00:32   0:00 /usr/libexec/gdm-x-session

방법 2: 실행 lsof /dev/tty2하고 보기:

COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
gdm-x-ses 3271 user    0u   CHR    4,2      0t0   23 /dev/tty2
...

답변1

loginctl각 세션의 유형을 물어보십시오 .

loginctl show-session -p Type 3

이는 그래픽 세션에서 표시되거나 사용됩니다 Type=x11.Type=wayland

관련 정보