मैं सीएलआई का उपयोग करके जीयूआई से कैसे लॉगआउट कर सकता हूं?


43

मैंने लॉगिन के समय एक ओपनबॉक्स डे चुना और सिस्टम ने डीई को लोड करने के लिए उम्र ली। इसलिए मैंने CLI ( Ctrl+ Alt+ F1) पर स्विच किया और अपने सिस्टम को रिबूट किया (लेकिन मैं GUI से लॉगआउट करना चाहता था और पूरे सिस्टम को रिस्टार्ट नहीं करना चाहता था)।

मेरा प्रश्न है, क्या मैं GUI से लॉग आउट करने के लिए CLI में कुछ कमांड जारी कर सकता हूं ताकि मैं अलग DE का चयन कर सकूं। (मैं अपने सिस्टम को हर बार DE हैंग नहीं करना चाहता।)


$ DISPLAY=:0 gnome-session-quit --force

** (gnome-session-quit:3144): WARNING **: Failed to call logout: The name org.gnome.SessionManager was not provided by any .service files

जवाबों:


45

सभी उपयोगकर्ता प्रक्रियाओं को समाप्त करने और लॉगिन स्क्रीन पर वापस भेजे जाने के लिए, आप इसका उपयोग कर सकते हैं:

kill -9 -1

यहां चर्चा के कारणों के लिए इसे रूट के रूप में न चलाएं ।


3
महान काम करता है, लेकिन क्यों? विशेष रूप से, Init को छोड़कर सब कुछ मारे जाने के बाद LightDM फिर से क्यों शुरू होता है?
सिरो सेंटिल्ली 新疆 改造 iro i 事件 '

1
@CiroSantilli 巴拿馬 文件 事件 ill force क्योंकि यह जबरदस्ती KILLS (9) हर बार इसकी अनुमति देता है। जिसका अर्थ है आपके द्वारा स्वामित्व वाली प्रत्येक प्रक्रिया। ऐप्स को समाप्त करने के लिए SIGKILL का उपयोग करना बिल्कुल अनुशंसित नहीं है! SIGTERM (15) का प्रयोग करें। अनुप्रयोग इस संकेत पर प्रतिक्रिया कर सकते हैं और सफाई कर सकते हैं।
मैनुअलसेलीन

22

यह gnome-session-quitकमांड का उपयोग करके किया जा सकता है । यह --forceपुष्टि संवाद को दबाने के लिए विकल्प की आवश्यकता है जो इसके बिना दिखाई देगा।

एक्स टर्मिनल एमुलेटर से चलने वाले अनुप्रयोगों के विपरीत, टीटीवाई से एक सत्र को समाप्त करने के लिए आपको DISPLAYयह दर्शाने के लिए चर को जोड़ने की आवश्यकता होती है कि कौन सा एक्स डिस्प्ले सत्र चला रहा है। अत:

DISPLAY=:0 gnome-session-quit --force

यह मानते हुए कि आप गनोम पर चल रहे हैं: 0, जो सामान्य स्थितियों में होता है।

  • Ubuntu 12.04LTS में GNOME, कमांड चल रहा है

    "DISPLAY=:0 gnome-session-quit --logout --no-prompt" 
    

    काम करता है। वर्तमान अद्यतन स्तर में "--force" तर्क मौजूद नहीं है]


धन्यवाद, मैंने कमांड चलाई, लेकिन मुझे कुछ त्रुटि मिली। मैंने त्रुटि को शामिल करने के लिए अपनी पोस्ट को संपादित किया है। कृपया शेयर करें अगर मैंने कुछ गलत किया है।
अंकित

मेरा बुरा, मैंने ध्यान नहीं दिया कि आपने उल्लेख किया है कि आप ओपनबॉक्स का उपयोग कर रहे हैं। दुर्भाग्य से, यह कमांड केवल एक मानक उबंटू स्थापना (एकता / GNOME) के साथ काम करेगा। एक विकल्प के रूप में, आप GUI को पूरी तरह से बंद कर सकते हैं और इस तरह से आपका सत्र चल सकता है sudo service lightdm stop। संपादित करें: आप किस डेस्कटॉप वातावरण का उपयोग कर रहे हैं? ओपनबॉक्स सिर्फ एक विंडो मैनेजर है।
Cumulus007

मैं kde / openbox या gnome / openbox का उपयोग करने का प्रयास कर रहा हूँ।
अंकित

काम नहीं करता है अगर आपका टर्मिनल सूक्ति सत्र के समान डब सत्र का हिस्सा नहीं है। आप एक और डब सत्र में कैसे आते हैं?
ज़ैन लिंक्स

क्या यह कमांड है जो GUI के माध्यम से "लॉग आउट ..." पर क्लिक करने पर निष्पादित होता है?
डोर

7

कृपया टेककट के सुझाव का पालन ​​करें । मानक है Ctrl+ Alt+ Backspace

आप भी चला सकते हैं:

$ sudo service lightdm restart

1
gdm का स्थान lightdm ने ले लिया है। साथ ही, ctrl + alt + backspace डिफ़ॉल्ट रूप से अक्षम है।
Cumulus007

@ Cumulus007 धन्यवाद, जवाब अपडेट किया गया। मुझे पता है कि ctrl + alt + backspace डिफ़ॉल्ट रूप से अक्षम है, कभी समझ नहीं आया कि क्यों, लेकिन मुझे इसकी जानकारी है। मैं ओपी को सूचित कर रहा हूं कि मानक, सबसे अधिक इस्तेमाल किया जाने वाला कुंजी संयोजन क्या है। मुझे लगता है कि मानकों से चिपकना सबसे अच्छा है क्योंकि यह समस्या निवारण के लिए आसान बनाता है।
terdon

1
लाइटपैड बंद करने का मतलब होगा कि उसके बाद कोई लॉगिन प्रॉम्प्ट नहीं है, इसलिए उसे अलग वातावरण में लॉग इन करने का मौका नहीं मिलेगा।
पूल

1
मेला पर्याप्त @poolie, उत्तर अपडेट किया गया।
टेराडो

4

दूसरा रास्ता,

sudo pkill -u NameOftheUser

या

sudo pkill x

जो सभी उपयोगकर्ताओं को मारते हैं।


यह थोड़ा कठोर है, क्या आपको नहीं लगता?
अकोलीटेक्ट

कठोर? यह बेहद मूर्खतापूर्ण है।
HörmannHH

2

वास्तविक समस्या यह है कि DBUS सत्र चर को सेट करना होगा और उस सत्र से मेल खाना चाहिए जिसे आप नियंत्रित करने का प्रयास कर रहे हैं।

मैंने यह स्क्रिप्ट बनाई है जो उस गोमो-सत्र वातावरण से DBUS सत्र चर सेट करता है, जब आप अन्य सत्र / सत्र लॉगआउट करना चाहते हैं:

कमांड लाइन से गनोम-शेल को कैसे पुनः आरंभ करें?

function logout() {
    local USERNAME
    export USERNAMES=( ) 
    while [ -n "$1" ]; do case "$1" in
        -* ) break ;;
        *) USERNAMES+=( "$1" ); shift ;;
    esac; done

    for USERNAME in "${USERNAMES[@]}"; do
        local SESSION_PID=$(pgrep -fu "$USERNAME" gnome-session|head -1)
        if [ -n "$SESSION_PID" ]; then
            (
                sudo -u "$USERNAME" cat "/proc/$SESSION_PID/environ" | xargs -0 -n 1 echo export
                echo "gnome-session-quit --logout $@"
            ) | sudo -u "$USERNAME" sh -;
        fi
    done
}

बस का उपयोग करना --logout --no-promptया --forceइसके बजाय --logoutएक बेहतर विचार है, अन्यथा लॉगआउट प्रॉम्प्ट दिखाया जाएगा।
जियोले

1

यदि आप एक xubuntu सत्र या समान में हैं, तो gnome सत्र कमांड के xfce4-session-logout का उपयोग करना चाहिए, यही कारण है कि आप चेतावनी देखते हैं


1

यह मेरे लिए सबसे अच्छा काम करता है (xfce, lightdm और ssh के साथ):

$ DISPLAY=:0.0 xfce4-session-logout --logout

या

$ sudo service lightdm restart

0

एक विकल्प के रूप में, आप निम्नलिखित का उपयोग करके उपयोगकर्ता सत्रों को समाप्त कर सकते हैं, रूट उपयोगकर्ता के अलावा उपयोगकर्ताओं को लॉग आउट करने के लिए अच्छी तरह से काम करता है- उदाहरण के लिए रखरखाव करते समय।

loginctl | egrep -v "root|SESSION|listed" | awk '{print $1}' | xargs loginctl terminate-session

-2

आप killall gnome-sessionलॉग आउट करने के लिए कमांड का उपयोग कर सकते हैं । यह सभी गनोम सत्रों के लिए काम करेगा और यदि मुझे सभी गनोम-संबंधी याद हैं। यह आपको लाइट डीएमडी पर वापस ले जाता है ताकि आप एक नया डे या नया उपयोगकर्ता चुन सकें। :)


2
लॉगआउट करने का सबसे अच्छा तरीका नहीं है। चेक askubuntu.com/questions/69114/...
jokerdino

इससे पहले इस विकल्प को कभी नहीं देखा। मुझे शायद इसका उपयोग शुरू करना चाहिए। मैं मान रहा हूं कि killall gnome-sessionइसे बंद करने का एक जबरदस्त तरीका है।
रयान मैकक्लेर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.