Ekran yöneticimin ne olduğunu söyleyecek basit bir linux komutu var mı?


Yanıtlar:


45

Maalesef, yapılandırma her dağıtım için farklıdır:

Debian / Ubuntu

/etc/X11/default-display-manager

RedHat (Fedora için de geçerli olmalıdır)

/etc/sysconfig/desktop

openSUSE

/etc/sysconfig/displaymanager

1
Huh, neden bana konfigürasyondan bahsediyorsun ...?
ptrcao 09:11

2
@ptrcao Kullanmakta olduğunuz ekran yöneticisini belirtir.
Let_Me_Be 09:11

1
Ekran yöneticimin ne olduğunu bilmediğimi ve terminal kullanarak öğrenmek istediğimi varsayalım. Bunu nasıl yaparım?
ptrcao 09:11

3
@ptrcao Bu dosyalara bakardın. Onları en sevdiğin editörde aç ya da sadece yapıyorum cat.
Let_Me_Be 09:11

1
İçinde sadece bir satır var: /usr/bin/xdm- Bu, xdm'nin ekran yöneticim olduğu anlamına mı geliyor?
ptrcao 09:11

23

Yok. Görüntü yöneticisi mutlaka aynı X sunucusunda çalışan başka bir şeyle ilgili değildir. Ekran yöneticisi siz oturum açmadan önce çalışır; sistem yöneticisi tarafından seçilir. Diğer her şey (pencere yöneticisi, oturum yöneticisi, masaüstü ortamı,…) kullanıcı tarafından seçilir. Bir ekran yöneticisi olmak zorunda bile değil: metin modunda giriş yapar ve GUI'yi başlatırsanız, startxekran yöneticisi olmaz.

Hangi görüntü yöneticisinin sisteminizde varsayılan olduğunu kontrol edebilirsiniz . Bu, yalnızca bazı yaygın ama evrensel varsayımlar altında değil, doğru cevabı verecektir. Herhangi bir nedenden dolayı farklı bir menajeri manuel olarak çalıştırdıysanız, bu yöntem size söylemez.

İyi bir bahis, X sunucunun işlem kimliğini bulmaktır: ana işlem muhtemelen varsa bir ekran yöneticisidir. Bu, istemcilerinizin X sunucusuyla aynı makinede çalışmasını gerektirir. lsof /tmp/.X11-unix/X${DISPLAY#:}X sunucu işlemini gösterecektir (X soketlerinin yaşadığını varsayarsak /tmp/.X11-unix).

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

(Açıklama: lsof -F ''çıktıyı basar p1234. -FSeçenek, makineye uygun bir çıktı biçimi ''anlamına gelir ve yalnızca PID'yi, pönce gelen harfle yazdırmak anlamına gelir . x=${x#p}İlk harfi çıkarır p. Son satır, X sunucusunun ebeveyinin PID'sini alır. ( ps -o ppid -p $x) ve psbu üst işlem hakkında bilgi göstermek için arama yapar.)

Bazı dağıtımlar birden fazla ekran yöneticisinin kurulmasına izin verir. Çok-parçalı bir sisteminiz olmadığı sürece sadece bir çalışan olacak. Yüklü tüm ekran yöneticisi paketlerini Debian ve türevleri altında listelemek için:

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

veya

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

17

Systemd tabanlı dağıtım kullanıyorsanız . Bu komut, halihazırda yapılandırılmış ekran yöneticisinin adını verecektir, çünkü kurulu birden fazla ekran yöneticisi olabilir.

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

ÇIKIŞ gibi bir şey olacak

ExecStart=/usr/bin/mdm

Nane ekran yöneticisi kullanıyorum gibi görünüyor.


3
Yararsız kedi kullanımı için klasik bir örnek sundunuz - söylenmesi kesinlikle kabul edilebilir ve hatta tercih edilir grep '/usr/bin' /etc/systemd/system/display-manager.service. (Ve kesinlikle konuşursak, /usr/binkabuğa özgü herhangi bir karakter içermediğinden, alıntı yapmana gerek yoktur - ama canın yanmaz.)
G-Man

6
'kedinin yararsız kullanımı' her zaman biraz akrabadır. Grepping yaparken ikincinin cat <file> | grep <searchterm>yerine son dizeyi düzenlemeyi tercih grep <searchterm> <file>ederim.
sjas

1
Bu cevabı ilk gördüğünüz gibi olmalısınız, çünkü bugün bu tür bir soruna sahip olan çoğu kullanıcı sistem tabanlı dağıtımlar yapıyor. Teşekkürler. Bana yardımcı oldu.
Adergaard,

3
@ allsyed Dosyamda / usr / bin yok / usr / sbin. Linux-Nane 18
Prvt_Yadav

2
Benim durumumda (Centos 7) yazdım | grep '/ usr / sbin'
Davide

15

Eğer systemd kullanıyorsanız

systemctl status display-manager

Makinenizdeki aktif ekran yöneticisi servisinin adını ve durumunu gösterecektir.


Debian 9 ile benim için çalışan tek kişi bu. Diğer systemd yöntemleri hiçbir şey döndürmedi.
mickeyf,

10

Ekran yöneticisi adı DESKTOP_SESSION içinde olmalı

echo $DESKTOP_SESSION

benim için "cüceyi" döndürür.

EDIT
Haklısın. XFCE'lerin bugzilla'sında ileri geri gidiyorlar, bu yüzden muhtemelen çok güvenilir değil.


@ frabjous: Peki ya gdm ve kdm? Onlar da menajer mi yoksa sadece giriş menajeri mi?
ptrcao

Yanlışlıkla Frabjous'un yorumunu yanlışlıkla silmiş olmalıyım çünkü Gnome'un bir ekran yöneticisi değil, masaüstü ortamı olduğunu belirtti. Bu konu karışıklıkla doludur ...
ptrcao 09:11

Bu… hakkında bilgi verir, masaüstü ortamınızla aynı şey olması muhtemel olan masaüstü oturumu, ancak masaüstü ortamı kullanmıyorsanız veya özel bir yapılandırmanız varsa, tamamen başka bir şey olabilir. Bunu yazıyorum makinede, $DESKTOP_SESSIONbir unknown.
Gilles 'SO- kötülük olmayı'

+1, eko $ DESKTOP_SESSION da bana cüceyi döndürür ... ama belki bu sadece cüceler için işe yarar?
Trevor Boyd Smith

Yalnızca gnome için çalışıyorsa, bu komut yalnızca "evet Gnome'n var veya hayır gnome'nuz yok" ifadesini çıkarmanıza yardımcı olacaktır. Soru bundan daha fazlasını öğrenmek istediğinde.
Trevor Boyd Smith

2

@Gilles'in dediği gibi, ekran yöneticisi masaüstü ortamınızı başlatacak.

Göre Debian Wiki çoğunlukla bu uç ile dm, tek istisna slim.

Bu yüzden bu, insanların ihtiyaçlarının çoğunda yeterli olacaktır:

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

Ya da emin olmak için, bir ana süreç olarak var ve çatallanmadı (init sistemi hariç):

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

1
Burada benim için çalışan tek çözüm bu. Fedora 23'ümün LXDE eklentisi ile minimal (LXDE Spin değil) çalıştığını anladım lightdm. En iyi cevabın RedHat / Fedora çözümü işe yaramadı, konfigürasyon taşınmış gibi görünüyor.
Daniel Saner


0

Daha önce de belirtildiği gibi, bu başlıkta çok fazla kafa karışıklığı var. Asıl soru, ekran yöneticisi değil, masaüstü yöneticisi veya pencere yöneticisidir. Şu anda Xfce pencere yöneticisi olan Xfwm4 ve hafif X11 ekran yöneticisi olan lxdm kullanıyorum (LXDE'den, Xfce değil). Hangi ekran yöneticisini kullandığınızı görebilmeniz gerekir. Muhtemelen çok uzun zamandır 4 yıl boyunca cevabı keşfetti :)


Aslında hiç yapmadım ... Aslında Linux'tan tamamen vazgeçti ve karanlık tarafa geçti: D
ptrcao

0

Bunu screenfetch adlı üçüncü taraf bir komut dosyası aracılığıyla yapabilirsiniz.

Screenfetch, Linux için kullanılabilir bir bash betiğidir ve sistemin Linux dağıtım logosunun ASCII sürümüyle birlikte sistem bilgilerini görüntüler.

Paket yöneticisi ile kurun sudo apt-get install screenfetch(Debian varyantlarında olduğunuzu varsayarak)

ve sadece screenfetch terminalinde koş

Proje bağlantısı https://github.com/KittyKatt/screenFetch


-1

X oldukça modülerdir, eğer gerçekten istiyorsan, evet, masaüstü ortamlarını ve Windows yöneticilerini karıştır. Sonuçta bir pencere yöneticisi sadece pencereleri boyamanın bir yoludur (bu basit görünümdür).

Eğer gnome alırsanız, metacity eskiden windows yöneticisi olarak çalışıyordu, ama şimdi yerini Mutter aldı.

Karıştırma sorunu modern masaüstü ortamlarındadır, masaüstü ve pencere yöneticisi birbirine çok bağlıdır. Çok fazla karıştırma, daha az işlevle sonuçlanabilir.

Belirtildiği gibi $ DESKTOP_SESSION çalışıyor ancak X11 sunucunuza sormak istiyorsanız, şunları yapabilirsiniz:

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

Hangi ayrıştırır

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

Pencere yöneticisi tarafından oluşturulan pencerenin kimliğini alır. Teknik özellikler şöyle diyor (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.

Ardından, söz konusu pencerenin WM_NAME özelliğini isteyin.

WM_NAME şudur:

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 pencere yöneticisidir. Bu bir ekran yöneticisi ile aynı mı?
ptrcao

@Mathieu Sen pencere yöneticileri hakkında konuşuyorsun, ekran yöneticileri hakkında değil.
Let_Me_Be 9:11

@Let_Me_Be Doğru, ancak o zaman çoğu zaman, pencere yöneticiniz ekran yöneticinize bağlı ... Ne sıklıkta kde ve tersi ile gnome pencere yöneticisi kullanıyorsunuz? Ve aslında işe yarıyor çünkü gdm / kdm / ekran yöneticinizi seçmenize izin veren her ne ise, sağladığınız varsayılanı kullanmazsanız, bahsettiğiniz gibi yapılandırma dosyasını okumak işe yaramazsa ...
Mathieu

_NET_SUPPORTING_WM_CHECKEkran yöneticisi hakkında değil pencere yöneticisi hakkında bilgi verir. Her zaman işe yaramaz bile; sistemimde, bu özellik bir pencere kimliğine ayarlanmış ancak söz konusu pencerenin bir adı yok.
Gilles 'SO- kötülük olmayı'

@Matieu Bu, dağılımlara bağlıdır. Genellikle dağıtımın KDE sürümünü yüklediğinizde, KDM'yi alırsınız ve gnome sürümü ise GDM'yi alırsınız. Ancak giderek daha fazlasını göreceğiniz şeyler, yalnızca bir ekran yöneticisi için resmi destek (genellikle GDM / KDM'den daha hafif bir değişken).
Let_Me_Be

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.