क्या एक साधारण लिनक्स कमांड है जो मुझे बताएगा कि मेरा डिस्प्ले मैनेजर क्या है?


58

क्या एक साधारण लिनक्स कमांड है जो मुझे बताएगा कि मेरा डिस्प्ले मैनेजर क्या है?

मैं Xfce का उपयोग कर रहा हूं। क्या अलग-अलग डेस्कटॉप वातावरण आमतौर पर अलग-अलग डिस्प्ले मैनेजर से संबद्ध होते हैं?


1
इस पर विकिपीडिया का बहुत अच्छा लेख है: en.wikipedia.org/wiki/X_display_manager_%28program_type%29
Let_Me_Be

जवाबों:


45

दुर्भाग्य से कॉन्फ़िगरेशन प्रत्येक वितरण के लिए भिन्न होता है:

Debian / Ubuntu

/etc/X11/default-display-manager

रेडहैट (फेडोरा पर भी लागू होना चाहिए)

/etc/sysconfig/desktop

openSUSE

/etc/sysconfig/displaymanager

1
हुंह, आप मुझे विन्यास के बारे में क्यों बता रहे हैं ...?
ptrcao

2
@ptrcao क्योंकि यह निर्दिष्ट करता है कि आप किस प्रदर्शन प्रबंधक का उपयोग कर रहे हैं।
Let_Me_Be 15

1
मान लीजिए कि मुझे नहीं पता कि मेरा डिस्प्ले मैनेजर क्या है और मैं टर्मिनल का उपयोग करके पता लगाना चाहता हूं। मुझे यह कैसे करना है?
ptrcao

3
@ptrcao आप उन फ़ाइलों को देखेंगे। या तो उन्हें अपने पसंदीदा संपादक में खोलना, या बस करना cat
Let_Me_Be 15

1
इसमें केवल एक पंक्ति है: /usr/bin/xdm- इसका मतलब है कि xdm मेरा डिस्प्ले मैनेजर है?
15

23

वहाँ नहीं है प्रदर्शन प्रबंधक आवश्यक रूप से उसी एक्स सर्वर पर चलने वाली किसी अन्य चीज़ से संबंधित नहीं है। आपके द्वारा लॉग इन करने से पहले डिस्प्ले मैनेजर चलता है; इसे सिस्टम एडमिनिस्ट्रेटर द्वारा चुना जाता है। बाकी सब कुछ (खिड़की प्रबंधक, सत्र प्रबंधक, डेस्कटॉप वातावरण, ...) उपयोगकर्ता द्वारा चुना जाता है। वहाँ भी एक प्रदर्शन प्रबंधक होने की जरूरत नहीं है: यदि आप पाठ मोड में लॉग इन करते हैं और GUI के साथ शुरू करते हैं startx, तो कोई प्रदर्शन प्रबंधक शामिल नहीं है।

आप जांच सकते हैं कि आपके सिस्टम पर कौन सा डिस्प्ले मैनेजर डिफ़ॉल्ट है । यह केवल कुछ सामान्य लेकिन सार्वभौमिक मान्यताओं के तहत सही उत्तर देगा। यदि आप किसी भी कारण से मैन्युअल रूप से एक अलग प्रबंधक चलाते हैं, तो यह विधि आपको नहीं बताएगी।

एक्स सर्वर की प्रक्रिया आईडी का पता लगाने के लिए एक अच्छी शर्त है: इसकी मूल प्रक्रिया शायद एक डिस्प्ले मैनेजर है, यदि कोई है। इसके लिए आवश्यक है कि आपके क्लाइंट X सर्वर के समान मशीन पर चल रहे हों। lsof /tmp/.X11-unix/X${DISPLAY#:}एक्स सर्वर प्रक्रिया दिखाएगा (एक्स सॉकेट्स को लाइव मानते हुए /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इससे पहले x=${x#p}पत्र p। ( 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

OUTPUT कुछ इस तरह होगा

ExecStart=/usr/bin/mdm

ऐसा लगता है कि मैं टकसाल प्रदर्शन प्रबंधक का उपयोग कर रहा हूं।


3
आपने बिल्ली के बेकार उपयोग का एक उत्कृष्ट उदाहरण प्रस्तुत किया है - यह कहने के लिए पूरी तरह से स्वीकार्य है, और यहां तक ​​कि बेहतर भी है grep '/usr/bin' /etc/systemd/system/display-manager.service। (और, सख्ती से बोलना, क्योंकि /usr/binइसमें कोई भी वर्ण नहीं है जो शेल के लिए विशेष हैं, आपको इसे उद्धृत करने की आवश्यकता नहीं है - लेकिन यह चोट नहीं पहुंचाता है।)
जी-मैन

6
'बिल्ली का बेकार उपयोग' हमेशा कुछ सापेक्ष होता है। मैं बल्कि cat <file> | grep <searchterm>दूसरे स्ट्रिंग के बजाय एक दूसरे को संपादित करता हूं grep <searchterm> <file>जब grepping करता हूं।
21

1
यह उत्तर आपको पहले देखना चाहिए, क्योंकि आज इस प्रकार के प्रश्न वाले अधिकांश उपयोगकर्ता सिस्टम आधारित डिस्ट्रोस चला रहे हैं। धन्यवाद। इसने मेरी मदद की।
एम्बरगार्ड

3
@ मेरी फाइल में हमारे पास / usr / बिन नहीं है / usr / sbin है। लिनक्स-टकसाल 18
Prvt_Yadav

2
मेरे मामले में (Centos 7) मुझे लिखना है | grep '/ usr / sbin'
Davide

15

यदि आप systemd का उपयोग कर रहे हैं, तो

systemctl status display-manager

आपकी मशीन पर सक्रिय प्रदर्शन प्रबंधक सेवा का नाम और स्थिति प्रदर्शित करेगा।


डेबियन 9 के साथ, यह एकमात्र ऐसा है जिसने मेरे लिए काम किया। अन्य systemd विधियों ने कुछ नहीं दिया।
मिकीफ

10

प्रदर्शन प्रबंधक का नाम DESKTOP_SESSION में होना चाहिए

echo $DESKTOP_SESSION

मेरे लिए "सूक्ति" देता है।

संपादित करें
आप सही हैं। वे आगे और पीछे उस पर XFCEs पर जा रहे हैं बगजिला तो यह शायद बहुत विश्वसनीय नहीं है।


@ एफबीआरजेड: जीडीएम और केडीएम के बारे में क्या? क्या वे प्रबंधक भी या केवल लॉगिन प्रबंधक प्रदर्शित करते हैं?
ptrcao

मुझे गलती से उपर्युक्त भड़काऊ टिप्पणी को हटा देना चाहिए क्योंकि मुझे याद है कि उन्होंने टिप्पणी की थी कि गनोम एक डेस्कटॉप वातावरण है, न कि डिस्प्ले मैनेजर। यह धागा भ्रम के साथ लाजिमी है ...
ptrcao

यह ... डेस्कटॉप सत्र के बारे में जानकारी देता है, जो आपके डेस्कटॉप वातावरण के समान ही होने की संभावना है, लेकिन पूरी तरह से कुछ और हो सकता है यदि आप डेस्कटॉप वातावरण का उपयोग नहीं कर रहे हैं या आपके पास एक अजीब कॉन्फ़िगरेशन है। मशीन पर जहाँ मैं यह लिख रहा हूँ, $DESKTOP_SESSIONहै unknown
गिलीस

+1, गूंज $ DESKTOP_SIONION भी मेरे लिए सूक्ति देता है ... लेकिन शायद यह केवल सूक्ति के लिए काम करता है?
ट्रेवर बॉयड स्मिथ

यदि यह केवल सूक्ति के लिए काम करता है, तो यह कमांड आपको "हां आपके पास सूक्ति है या नहीं, आपके पास सूक्ति नहीं है" को कम करने में मदद करेगा। जब सवाल उससे ज्यादा का पता लगाना चाहता है।
ट्रेवर बॉयड स्मिथ

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 स्पिन नहीं) के साथ मेरा फेडोरा 23 न्यूनतम है lightdm। शीर्ष उत्तर से RedHat / Fedora समाधान काम नहीं किया, कॉन्फ़िगरेशन स्थानांतरित हो गया है।
डैनियल सानर

0

कुछ मामलों में, wmctrl मदद कर सकता है। यह उपयोगिता बहुत सारे विंडोज़ प्रबंधकों के साथ संगत है।

wmcrt -m 

वर्तमान में उपयोग किए गए विंडो प्रबंधक का नाम प्रदर्शित करना चाहिए।



0

जैसा कि पहले ही उल्लेख किया गया है, इस धागे में बहुत भ्रम है। मूल प्रश्न यह है कि डिस्प्ले मैनेजर, डेस्कटॉप मैनेजर या विंडो मैनेजर नहीं है। मैं वर्तमान में Xfwm4 चला रहा हूं जो Xfce विंडो मैनेजर है, और lxdm जो कि हल्के X11 डिस्प्ले मैनेजर है (LXDE से, एक्सएफसी से नहीं)। आपको यह देखने में सक्षम होना चाहिए कि आप htop के माध्यम से किस प्रदर्शन प्रबंधक का उपयोग कर रहे हैं। आप पिछले 4 वर्षों में उत्तर की खोज करने के बाद से शायद लंबे समय तक हैं :)


वास्तव में कभी नहीं किया ... वास्तव में पूरी तरह से लिनक्स पर छोड़ दिया और अंधेरे पक्ष पर चला गया: डी
ptrcao

0

आप इसे तीसरे पक्ष की स्क्रिप्ट के माध्यम से कर सकते हैं जिसे स्क्रीनफच कहा जाता है

स्क्रीनफैच लिनक्स के लिए उपलब्ध एक बैश स्क्रिप्ट है जो सिस्टम के लिनक्स वितरण लोगो के ASCII संस्करण के साथ सिस्टम जानकारी प्रदर्शित करता है।

पैकेज मैनेजर के माध्यम से स्थापित करें sudo apt-get install screenfetch(यह मानते हुए कि आप डेबियन वेरिएंट पर हैं)

और बस screenfetch अपने टर्मिनल में चलाएं

प्रोजेक्ट लिंक https://github.com/KittyKatt/screenFetch


-1

एक्स अत्यधिक मॉड्यूलर है इसलिए यदि आप वास्तव में यह चाहते थे, हां, आप डेस्कटॉप वातावरण और विंडोज़ मैनेजर को मिला सकते हैं। सब के बाद एक खिड़की प्रबंधक सिर्फ खिड़कियों को पेंट करने का एक तरीका है (यह सरल दृश्य है)।

इसलिए यदि आप सूक्ति लेते हैं, तो मेटासिटी विंडोज़ प्रबंधक हुआ करती थी, लेकिन अब इसे मुटर द्वारा बदल दिया गया है।

मिश्रण के साथ मुद्दा आधुनिक डेस्कटॉप वातावरण में है, डेस्कटॉप और विंडो मैनेजर अत्यधिक एक दूसरे से बंधे हैं। बहुत अधिक मिश्रण कम कार्यक्षमता में समाप्त हो सकता है।

जैसा कि उल्लेख $ 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"

जिसे विंडो मैनेजर द्वारा बनाई गई विंडो की आईडी मिलती है। चश्मा कहता है (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

@ मैथ्यू आप विंडो प्रबंधकों के बारे में बात कर रहे हैं, प्रदर्शन प्रबंधक नहीं।
Let_Me_Be

@Let_Me_Be सही है, लेकिन तब अधिकांश समय, आपका विंडो मैनेजर आपके डिस्प्ले मैनेजर से जुड़ा होता है ... आप कितनी बार gnome window managerwith kde और इसके विपरीत का उपयोग करते हैं? और यह वास्तव में काम करता है क्योंकि जीडीएम / केडीएम / जो भी आपको अपने डिस्प्ले मैनेजर का चयन करने की अनुमति देता है, जिसका अर्थ है कि आपके द्वारा उल्लिखित कॉन्फ़िगरेशन फ़ाइल को पढ़ने से काम नहीं चलता है यदि आप दिए गए डिफ़ॉल्ट का उपयोग नहीं करते हैं ...
मैथ्यू

_NET_SUPPORTING_WM_CHECKविंडो मैनेजर के बारे में जानकारी देता है, डिस्प्ले मैनेजर के बारे में नहीं। यह हमेशा काम भी नहीं करता है; मेरे सिस्टम पर, वह प्रॉपर्टी एक विंडो आईडी पर सेट है, लेकिन विचाराधीन विंडो में नाम नहीं है।
गाइल्स

@ मैथ्यू जो वितरण पर निर्भर करता है। आमतौर पर जब आप डिस्ट्रो का केडीई संस्करण स्थापित करते हैं, तो आपको केडीएम मिलता है और जब एक गनोम संस्करण मिलता है, तो आपको जीडीएम मिलता है। लेकिन जो सामान आपको अधिक से अधिक दिखाई देगा, वह केवल एक डिस्प्ले मैनेजर के लिए आधिकारिक समर्थन है (आमतौर पर अधिक हल्का-वजन वाला संस्करण फिर जीडीएम / केडीएम)।
Let_Me_Be

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.