Gibt es einen einfachen Linux-Befehl, der mir sagt, was mein Display-Manager ist?

Antworten:

45

Leider unterscheidet sich die Konfiguration für jede Distribution:

Debian / Ubuntu

/etc/X11/default-display-manager

RedHat (sollte auch für Fedora gelten)

/etc/sysconfig/desktop

OpenSuSe

/etc/sysconfig/displaymanager
Lass mich sein
quelle
1
Huh, warum erzählst du mir von Konfiguration ...?
Freitag,
2
@ptrcao Weil es angibt, welchen Anzeigemanager Sie verwenden.
Let_Me_Be
1
Angenommen, ich weiß nicht, was mein Display-Manager ist, und ich möchte es mithilfe des Terminals herausfinden. Wie würde ich das machen?
Freitag,
3
@ptrcao Du würdest in diese Dateien schauen. Entweder öffnen Sie sie in Ihrem Lieblingseditor, oder Sie tun es einfach cat.
Let_Me_Be
1
Es enthält nur eine Zeile: /usr/bin/xdm- Bedeutet das, dass xdm mein Display-Manager ist?
Freitag,
23

Gibt es nicht Der Anzeigemanager ist nicht unbedingt mit etwas anderem verbunden, das auf demselben X-Server ausgeführt wird. Der Anzeigemanager wird ausgeführt, bevor Sie sich anmelden. Es wird vom Systemadministrator ausgewählt. Alles andere (Fenstermanager, Sitzungsmanager, Desktop-Umgebung, ...) wird vom Benutzer ausgewählt. Es muss nicht einmal ein Display-Manager vorhanden sein: Wenn Sie sich im Textmodus anmelden und die GUI mit starten startx, ist kein Display-Manager beteiligt.

Sie können überprüfen, welcher Anzeigemanager der Standard in Ihrem System ist . Dies wird nur unter einigen allgemeinen, aber nicht universellen Annahmen die richtige Antwort geben. Wenn Sie aus irgendeinem Grund manuell einen anderen Manager ausgeführt haben, werden Sie bei dieser Methode nicht darauf hingewiesen.

Eine gute Wette ist es, die Prozess-ID des X-Servers herauszufinden: Der übergeordnete Prozess ist wahrscheinlich ein Display-Manager, falls vorhanden. Dies setzt voraus, dass Ihre Clients auf demselben Computer wie der X-Server ausgeführt werden. lsof /tmp/.X11-unix/X${DISPLAY#:}zeigt den X-Server-Prozess an (vorausgesetzt, die X-Sockets sind aktiv /tmp/.X11-unix).

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

(Erklärung: lsof -F ''druckt die Ausgabe wie p1234. Die -FOption bedeutet ein maschinenparsbares Ausgabeformat und ''bedeutet, dass nur die PID mit dem Buchstaben pdavor gedruckt wird. Entfernt x=${x#p}den Anfangsbuchstaben p. Die letzte Zeile erhält die PID des übergeordneten Elements des X-Servers ( ps -o ppid -p $x) und Aufrufe ps, um Informationen zu diesem übergeordneten Prozess anzuzeigen.)

Bei einigen Distributionen können mehrere Display Manager installiert werden. Es wird jedoch nur ein einziges System ausgeführt, es sei denn, Sie haben ein Multiseat-System. So listen Sie alle installierten Display Manager-Pakete unter Debian und Derivaten auf:

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

oder

</var/lib/dpkg/status awk '
    /^Package: / {package = $2}
    /^Provides: .*x-display-manager/ {print package}'
Gilles 'SO - hör auf böse zu sein'
quelle
17

Wenn Sie eine systembasierte Distribution verwenden. Dieser Befehl gibt den Namen des derzeit konfigurierten Display Managers an, da möglicherweise mehr als ein Display Manager installiert ist.

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

OUTPUT wird ungefähr so ​​sein

ExecStart=/usr/bin/mdm

Es sieht so aus, als würde ich den Minz-Display-Manager verwenden.

allsyed
quelle
3
Sie haben ein klassisches Beispiel für eine nutzlose Verwendung von Katzen vorgestellt - es ist durchaus akzeptabel und sogar besser zu sagen grep '/usr/bin' /etc/systemd/system/display-manager.service. (Und genau genommen, da /usr/bines keine speziellen Zeichen für die Shell gibt, müssen Sie es nicht zitieren - aber es tut nicht weh.)
G-Man
6
'unnützer Gebrauch von Katze' ist immer etwas relativ. Ich bearbeite beim Greifen eher die letzte als cat <file> | grep <searchterm>die zweite grep <searchterm> <file>Zeichenfolge.
Sjas
1
Diese Antwort sollte die erste sein, die Sie sehen, da die meisten Benutzer, die diese Art von Fragen haben, heute systembasierte Distributionen ausführen. Vielen Dank. Es hat mir geholfen.
Adergaard
3
@allesyed meine Datei hat nicht / usr / bin es hat / usr / sbin. Linux-Mint 18
Prvt_Yadav
2
In meinem Fall (Centos 7) muss ich | schreiben grep '/ usr / sbin'
Davide
15

Wenn Sie systemd verwenden, dann

systemctl status display-manager

Zeigt den Namen und den Status des aktiven Display Manager-Dienstes auf Ihrem Gerät an.

Mioriin
quelle
Mit Debian 9 war dies die einzige, die für mich funktioniert hat. Die anderen systemd-Methoden gaben nichts zurück.
Mickeyf
10

Der Name des Display Managers sollte in DESKTOP_SESSION stehen

echo $DESKTOP_SESSION

gibt "gnome" für mich zurück.

BEARBEITEN
Sie haben recht. Sie gehen auf XFCEs Bugzilla hin und her, also ist es wahrscheinlich nicht sehr zuverlässig.

Charles-Brücke
quelle
@frabjous: Was ist mit GDM und KDM? Sind sie auch Display Manager oder nur Login Manager?
Freitag,
Ich muss aus Versehen den obigen Kommentar von frabjous gelöscht haben, weil ich mich erinnere, dass er bemerkt hat, dass Gnome eine Desktop-Umgebung ist, kein Display-Manager. Dieser Thread ist
voller
Hier finden Sie Informationen zu… der Desktopsitzung, die wahrscheinlich mit Ihrer Desktop-Umgebung identisch ist, aber auch ganz anders aussehen kann, wenn Sie keine Desktop-Umgebung verwenden oder eine spezielle Konfiguration haben. Auf der Maschine, auf der ich das schreibe, $DESKTOP_SESSIONist unknown.
Gilles 'SO- hör auf böse zu sein'
+1, echo $ DESKTOP_SESSION gibt auch gnome an mich zurück ... aber vielleicht funktioniert das nur für gnome?
Trevor Boyd Smith
Wenn es nur für Gnome funktioniert, hilft Ihnen dieser Befehl nur, zu folgern: "Ja, Sie haben Gnome oder nein, Sie haben keinen Gnome". Wenn die Frage mehr als das herausfinden will.
Trevor Boyd Smith
2

Wie @Gilles bereits sagte, startet der Display-Manager Ihre Desktop-Umgebung.

Nach Angaben des Debian-Wikis enden diese meistens mit dm, einzige Ausnahme ist slim.

Dies sollte also für die meisten Bedürfnisse der Menschen ausreichen:

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

Oder um sicherzugehen, dass es als übergeordneter Prozess existiert und nicht gegabelt wird (außer vom Init-System):

ps auxf | awk '{print $11}' | \grep -e "^/.*dm$" -e "/.*slim$" 
sjas
quelle
1
Dies ist die einzige Lösung, die hier für mich funktioniert hat. Es wurde herausgefunden, dass mein Fedora 23 minimal mit LXDE-Add-On (nicht der LXDE-Spin) ausgeführt wird lightdm. Die RedHat / Fedora-Lösung von der obersten Antwort hat nicht funktioniert, die Konfiguration scheint sich verschoben zu haben.
Daniel Saner
0

In einigen Fällen könnte wmctrl helfen. Dieses Dienstprogramm ist mit vielen Windows-Managern kompatibel.

wmcrt -m 

sollte den Namen des aktuell verwendeten Fenstermanagers anzeigen.

Francis Gernet
quelle
6
Ein Fenstermanager ist nicht dasselbe wie ein Anzeigemanager .
HalosGhost
0

Wie bereits erwähnt, gibt es in diesem Thread viel Verwirrung. Die ursprüngliche Frage ist, welcher Display Manager, nicht Desktop Manager oder Window Manager. Ich verwende derzeit Xfwm4, das Xfce-Fenstermanager ist, und lxdm, das leichter X11-Displaymanager ist (von LXDE, nicht Xfce). Sie sollten in der Lage sein zu sehen, welchen Anzeigemanager Sie über htop verwenden. Sie haben die Antwort in den letzten 4 Jahren wahrscheinlich schon lange entdeckt :)

billV
quelle
Eigentlich nie ... Tatsächlich hat Linux ganz aufgegeben und ist auf die dunkle Seite
gegangen
0

Sie können dies über ein Drittanbieter-Skript namens screenfetch tun

Screenfetch ist ein für Linux verfügbares Bash-Skript, das neben der ASCII-Version des Linux-Distributionslogos des Systems Systeminformationen anzeigt

Installation über den Paketmanager sudo apt-get install screenfetch(vorausgesetzt, Sie verwenden Debian-Varianten)

und laufen screenfetch Sie einfach in Ihrem Terminal

Projektlink https://github.com/KittyKatt/screenFetch

Obi Uchenna David
quelle
-1

X ist sehr modular aufgebaut. Wenn Sie es wirklich wollten, können Sie Desktop-Umgebungen und Windows-Manager kombinieren. Schließlich ist ein Fenstermanager nur eine Möglichkeit, Fenster zu malen (das ist die einfache Ansicht).

Wenn Sie also Gnome nehmen, war Metacity früher der Windows-Manager, aber jetzt wurde er von Mutter ersetzt.

Das Problem beim Mischen liegt in modernen Desktop-Umgebungen. Desktop und Window Manager sind eng miteinander verbunden. Zu viel Mischen kann zu weniger Funktionalität führen.

Wie bereits erwähnt, funktioniert $ DESKTOP_SESSION, aber wenn Sie Ihren X11-Server fragen möchten, können Sie Folgendes tun:

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

Welches zerfällt in

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

Welches bekommt die ID des Fensters vom Fenstermanager erstellt. In den technischen Daten heißt es (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.

Und dann fragen Sie nach der WM_NAME-Eigenschaft des Fensters.

WM_NAME ist:

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). 
Mathieu
quelle
@frabjous: Xfwm4 ist der Xfce-Fenstermanager. Ist das dasselbe wie bei einem Display Manager?
Freitag,
@ Mathieu Sie sprechen von Window-Managern, nicht von Display-Managern.
Let_Me_Be
@Let_Me_Be Richtig, aber meistens ist Ihr Fenstermanager an Ihren Anzeigemanager gebunden ... Wie oft verwenden Sie den Gnome-Fenstermanager mit KDE und umgekehrt? Und es funktioniert tatsächlich, weil Sie mit gdm / kdm / whatever Ihren Display-Manager auswählen können, was bedeutet, dass das Lesen der von Ihnen erwähnten Konfigurationsdatei nicht funktioniert, wenn Sie nicht die bereitgestellte Standardeinstellung verwenden ...
Mathieu
_NET_SUPPORTING_WM_CHECKGibt Informationen über den Fenstermanager, nicht über den Anzeigemanager. Es funktioniert nicht immer; Auf meinem System ist diese Eigenschaft auf eine Fenster-ID festgelegt, das betreffende Fenster hat jedoch keinen Namen.
Gilles 'SO - hör auf böse zu sein'
@ Mathieu Das kommt auf die Distributionen an. Wenn Sie eine KDE-Version der Distribution installieren, erhalten Sie normalerweise KDM und wenn Sie eine Gnome-Version verwenden, erhalten Sie GDM. Aber das, was Sie immer mehr sehen werden, ist die offizielle Unterstützung für nur einen Display-Manager (normalerweise eine leichtere Variante als GDM / KDM).
Let_Me_Be
-2
lshw -c video | grep 'configuration'
pennen
quelle
3
Ein bisschen Erklärung wäre schön.
Phk