내 디스플레이 관리자가 무엇인지 알려주는 간단한 리눅스 명령이 있습니까?


58

내 디스플레이 관리자가 무엇인지 알려주는 간단한 리눅스 명령이 있습니까?

Xfce를 사용하고 있습니다. 다른 데스크탑 환경은 일반적으로 다른 디스플레이 관리자와 관련되어 있습니까?


1
위키 백과는 이것에 대해 꽤 좋은 기사를 가지고 있습니다 : en.wikipedia.org/wiki/X_display_manager_%28program_type%29
Let_Me_Be

답변:


45

불행히도 구성은 배포마다 다릅니다.

데비안 / 우분투

/etc/X11/default-display-manager

RedHat (Fedora에도 적용해야 함)

/etc/sysconfig/desktop

OpenSuSe

/etc/sysconfig/displaymanager

1
허, 왜 구성에 대해 말하고 있습니까?
ptrcao

2
@ptrcao 사용중인 디스플레이 관리자를 지정하기 때문입니다.
Let_Me_Be

1
디스플레이 관리자가 무엇인지 모르고 터미널을 사용하여 찾고 싶다고 가정합니다. 어떻게해야합니까?
ptrcao

3
@ptrcao 당신은 그 파일들을 살펴볼 것입니다. 좋아하는 편집기에서 열거 나을 수행하십시오 cat.
Let_Me_Be

1
여기에는 한 줄만 있습니다 : /usr/bin/xdm-xdm이 내 디스플레이 관리자라는 의미입니까?
ptrcao

23

없습니다. 디스플레이 관리자가 반드시 동일한 X 서버에서 실행되는 다른 것과 관련이있는 것은 아닙니다. 로그인하기 전에 디스플레이 관리자가 실행됩니다. 시스템 관리자가 선택합니다. 그 밖의 모든 것 (창 관리자, 세션 관리자, 데스크탑 환경 등)은 사용자가 선택합니다. 디스플레이 관리자가 필요하지 않습니다. 텍스트 모드로 로그인하고로 GUI를 시작하면 startx디스플레이 관리자가 필요하지 않습니다.

시스템에서 어떤 디스플레이 관리자가 기본 디스플레이 관리자인지 확인할 수 있습니다 . 이것은 보편적이지만 가정이 아닌 일반적인 가정 하에서 만 정답을 줄 것입니다. 어떤 이유로 든 다른 관리자를 수동으로 실행 한 경우이 방법으로 알려주지 않습니다.

X 서버의 프로세스 ID를 찾는 것이 좋습니다. 부모 프로세스는 아마도 디스플레이 관리자 일 것입니다. 이를 위해서는 클라이언트가 X 서버와 동일한 시스템에서 실행되고 있어야합니다. lsof /tmp/.X11-unix/X${DISPLAY#:}X 서버 프로세스가 표시됩니다 (X 소켓이에 있다고 가정 /tmp/.X11-unix).

x=$(lsof -F '' /tmp/.X11-unix/X0); x=${x#p}
ps -p $(ps -o ppid -p $x)

(설명 : 다음 lsof -F ''과 같이 출력을 인쇄합니다 p1234.이 -F옵션은 기계 구문 분석 가능 출력 형식을 ''의미하며, 그 p앞에 문자 를 사용하여 PID 만 인쇄하는 것을 의미 합니다. x=${x#p}초기 문자를 제거합니다 p. 마지막 행은 X 서버의 상위 PID를 얻습니다. ( ps -o ppid -p $x)을 호출 ps하고 해당 상위 프로세스에 대한 정보를 표시하도록 호출 합니다.)

일부 배포판에서는 여러 디스플레이 관리자를 설치할 수 있습니다. 멀티 시트 시스템이 없다면 단 하나만 실행됩니다. 설치된 모든 디스플레이 관리자 패키지를 데비안 및 파생 제품 아래에 나열하려면 :

aptitude -F %p search '~i ~P^x-display-manager$'

또는

</var/lib/dpkg/status awk '
    /^Package: / {package = $2}
    /^Provides: .*x-display-manager/ {print package}'

17

당신이 사용하는 경우 systemd 기반 배포를. 이 명령은 둘 이상의 디스플레이 관리자가 설치되어 있기 때문에 현재 구성된 디스플레이 관리자의 이름을 제공합니다.

grep '/usr/s\?bin' /etc/systemd/system/display-manager.service

출력은 다음과 같습니다

ExecStart=/usr/bin/mdm

민트 디스플레이 관리자를 사용하는 것 같습니다.


3
당신은의 고전적인 예를 제시 고양이의 쓸모없는 사용 -이 말을 완벽하게 수용, 심지어 바람직입니다 grep '/usr/bin' /etc/systemd/system/display-manager.service. (그리고 엄밀히 말하면, /usr/bin쉘에 특별한 문자가 포함되어 있지 않으므로 인용 할 필요는 없지만 아프지 않습니다.)
G-Man

6
'고양이의 쓸모없는 사용'은 항상 다소 상대적입니다. 오히려 grepping 할 때 cat <file> | grep <searchterm>두 번째 문자열 대신 마지막 문자열을 편집합니다 grep <searchterm> <file>.
sjas

1
오늘날 이러한 유형의 질문을하는 대부분의 사용자가 시스템 기반 배포판을 실행하고 있으므로이 답변이 가장 먼저 나타납니다. 감사. 그것은 나를 도왔다.
Adergaard 2017

3
@ allsyed 내 파일에는 / usr / bin이 없으며 / usr / sbin이 있습니다. Linux-Mint 18
Prvt_Yadav

2
제 경우에는 (Centos 7) 다음과 같이 작성해야합니다. | 그렙 '는 / usr / sbin에'
다비드

15

systemd를 사용하는 경우

systemctl status display-manager

컴퓨터에서 활성 디스플레이 관리자 서비스의 이름과 상태를 표시합니다.


데비안 9에서는 이것이 나를 위해 일한 유일한 것입니다. 다른 시스템화 된 메소드는 아무것도 리턴하지 않았습니다.
mickeyf

10

디스플레이 관리자 이름은 DESKTOP_SESSION에 있어야합니다.

echo $DESKTOP_SESSION

나를 위해 "gnome"을 반환합니다.

편집
당신이 맞아요. 그들은 XFCEs bugzilla 에서 계속 진행하고 있기 때문에 아마도 신뢰할 수는 없습니다.


@frabjous : gdm과 kdm은 어떻습니까? 그들은 또한 관리자를 표시합니까 아니면 로그인 관리자입니까?
ptrcao

나는 Gnome이 디스플레이 관리자가 아닌 데스크탑 환경이라는 점을 언급했기 때문에 실수로 실수로 frabjous '주석을 삭제해야합니다. 이 스레드는 혼란으로 가득하다 ...
ptrcao

여기에는 데스크탑 환경과 동일한 내용 일 수있는 데스크탑 세션에 대한 정보가 제공되지만 데스크탑 환경을 사용하지 않거나 특별한 구성이있는 경우에는 다른 내용이있을 수 있습니다. 내가 쓰는 기계에서는 $DESKTOP_SESSION입니다 unknown.
Gilles

+1, echo $ DESKTOP_SESSION도 나에게 그놈을 반환하지만 ... 그놈에만 작동합니까?
Trevor Boyd Smith

gnome에만 작동하는 경우이 명령은 "Gnome이 있거나 gnome이없는 경우"를 추론하는 데 도움이됩니다. 질문이 그 이상을 찾고자 할 때.
Trevor Boyd Smith

2

@Gilles가 말했듯이 디스플레이 관리자는 데스크탑 환경을 시작합니다.

데비안 위키 에 따르면 , 이것은 대부분 dm예외로만 끝납니다 slim.

따라서 대부분의 사람들의 요구에 충분합니다.

ps auxf | awk '{print $11}' | \grep --color -e dm$ -e slim$

또는 부모 프로세스로 존재하며 분기되지 않습니다 (init 시스템 제외).

ps auxf | awk '{print $11}' | \grep -e "^/.*dm$" -e "/.*slim$" 

1
이것이 나를 위해 일한 유일한 솔루션입니다. LXDE 애드온 (LXDE Spin 아님)이 포함 된 Fedora 23 최소 버전이 실행되고 있음을 알아 냈습니다 lightdm. 최상위 답변의 RedHat / Fedora 솔루션이 작동하지 않아 구성이 이동 한 것 같습니다.
Daniel Saner


0

이미 언급 했듯이이 스레드에는 많은 혼란이 있습니다. 원래 질문은 데스크탑 관리자 나 창 관리자가 아닌 디스플레이 관리자입니다. 현재 Xfce 창 관리자 인 Xfwm4와 경량 X11 디스플레이 관리자 인 lxdm (Xfce가 아닌 LXDE에서)을 실행하고 있습니다. htop을 통해 사용중인 디스플레이 관리자를 볼 수 있어야합니다. 당신은 아마 지난 4 년 동안 그 답을 발견 한 지 오래되었습니다. :)


실제로 한 적이 없다 ... 실제로 리눅스에서 완전히 포기하고 어두운 곳으로 넘어 갔다. : D
ptrcao

0

screenfetch 라는 타사 스크립트를 통해이 작업을 수행 할 수 있습니다.

Screenfetch는 Linux에서 사용할 수있는 bash 스크립트로, 시스템의 Linux 배포 로고의 ASCII 버전과 함께 시스템 정보를 표시합니다

패키지 관리자를 통해 설치하십시오 sudo apt-get install screenfetch(데비안 변종이라고 가정)

그리고 그냥 screenfetch 터미널에서 실행

프로젝트 링크 https://github.com/KittyKatt/screenFetch


-1

X는 고도로 모듈화되어 있으므로 실제로 원한다면 데스크톱 환경과 Windows 관리자를 혼합 할 수 있습니다. 결국 창 관리자는 창을 칠하는 방법 일뿐입니다 (간단한보기입니다).

따라서 그놈을 받아들이면 메타 시티는 창 관리자 였지만 이제는 Mutter로 대체되었습니다.

믹싱 문제는 최신 데스크톱 환경에서 발생하며 데스크톱과 창 관리자는 서로 밀접한 관련이 있습니다. 혼합이 너무 많으면 기능이 줄어들 수 있습니다.

언급했듯이 $ DESKTOP_SESSION은 작동하지만 X11 서버에 요청하려면 다음을 수행하십시오.

xprop -id $(xprop -root _NET_SUPPORTING_WM_CHECK | cut -d\# -f2) WM_NAME

분해되는

xprop -root _NET_SUPPORTING_WM_CHECK | cut -d\# -f2
0x1000052
xprop -id 0x1000052 WM_NAME
WM_NAME(STRING) = "xfwm4"

창 관리자가 만든 창의 ID를 가져옵니다. 사양에 따르면 (http://standards.freedesktop.org/wm-spec/1.3/ar01s03.html) :

_NET_SUPPORTING_WM_CHECK, WINDOW/32
The Window Manager MUST set this property on the root window to be the ID
of a child window created by himself, to indicate that a compliant window
manager is active.

그런 다음 해당 창의 WM_NAME 속성을 요청합니다.

WM_NAME :

The WM_NAME property is an uninterpreted string that the client wants the
window manager to display in association with the window (for example, in
a window headline bar). 

@frabjous : Xfwm4는 Xfce 창 관리자입니다. 디스플레이 관리자와 동일합니까?
ptrcao

@Mathieu 디스플레이 관리자가 아닌 창 관리자에 대해 이야기하고 있습니다.
Let_Me_Be

@Let_Me_Be True 그러나 대부분의 경우 창 관리자는 디스플레이 관리자와 연결되어 있습니다. kde와 함께 그놈 창 관리자를 얼마나 자주 사용합니까? gdm / kdm / 무엇이든 디스플레이 관리자를 선택할 수 있기 때문에 실제로 작동합니다. 제공된 기본값을 사용하지 않으면 언급 한 구성 파일을 읽을 수 없습니다.
Mathieu

_NET_SUPPORTING_WM_CHECK디스플레이 관리자가 아닌 창 관리자에 대한 정보를 제공합니다. 항상 작동하지는 않습니다. 내 시스템에서 해당 속성은 창 ID로 설정되어 있지만 해당 창에 이름이 없습니다.
Gilles

@Mathieu 배포판에 따라 다릅니다. 일반적으로 배포판의 KDE 버전을 설치하면 KDM이 표시되고 그놈 버전이 표시되면 GDM이 표시됩니다. 그러나 점점 더 많이 보게 될 것은 하나의 디스플레이 관리자 (일반적으로 GDM / KDM보다 더 가벼운 변형)에 대한 공식 지원입니다.
Let_Me_Be

-2
lshw -c video | grep 'configuration'

3
약간의 설명이 좋을 것입니다.
phk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.