Pertanyaan Bagaimana saya bisa keluar dari GUI menggunakan CLI?


Saya memilih Openbox DE pada saat login dan sistem mengambil usia untuk memuat DE. Jadi saya beralih ke CLI (Ctrl+Alt+F1) dan reboot sistem saya (tetapi saya ingin keluar dari GUI dan tidak memulai ulang seluruh sistem).

Pertanyaan saya adalah, dapatkah saya mengeluarkan beberapa perintah di CLI untuk mengeluarkan saya dari GUI sehingga saya dapat memilih DE yang berbeda. (Saya tidak ingin me-restart sistem saya setiap kali DE hang.)


$ 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

38
2017-08-26 12:38


asal




Jawaban:


Untuk mengakhiri semua proses pengguna dan dikirim kembali ke layar masuk, Anda dapat menggunakan:

kill -9 -1

Jangan menjalankannya sebagai root, karena alasan yang dibahas sini.


40
2017-08-27 00:50



Berfungsi bagus, tapi mengapa? Secara khusus, mengapa LightDM restart setelah Anda membunuh semuanya kecuali init? - Ciro Santilli 新疆改造中心 六四事件 法轮功
@CiroSantilli 巴拿馬 文件 六四 事件 法轮功 Karena dengan paksa KILLS (9) SEMUA itu diperbolehkan. Yang berarti setiap proses yang Anda miliki. Menggunakan SIGKILL untuk menghentikan aplikasi sama sekali tidak disarankan! Gunakan SIGTERM (15). Aplikasi dapat bereaksi terhadap sinyal ini dan melakukan pembersihan. - ManuelSchneid3r


Ini bisa dilakukan dengan menggunakan gnome-session-quit perintah. Itu membutuhkan --force pilihan untuk menekan dialog konfirmasi yang akan muncul tanpa itu.

Tidak seperti aplikasi yang dijalankan dari emulator terminal X, mengakhiri sesi dari TTY mengharuskan Anda menambahkan DISPLAY variabel untuk menunjukkan tampilan X mana yang menjalankan sesi. Karenanya:

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

dengan asumsi bahwa Anda menjalankan GNOME pada: 0, yang merupakan kasus dalam situasi normal.

  • Di Ubuntu 12.04LTS menjalankan GNOME, perintah

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

    bekerja. Argumen "--force" tidak ada di tingkat pembaruan saat ini]


16
2017-08-26 14:31



terima kasih, saya menjalankan perintah tetapi saya mendapat beberapa kesalahan. Saya telah mengedit posting saya untuk memasukkan kesalahan. Silakan bagikan jika saya telah melakukan kesalahan. - Ankit
Buruk saya, saya tidak melihat Anda menyebutkan Anda menggunakan openbox. Sayangnya, perintah ini hanya akan berfungsi dengan instalasi standar Ubuntu (Unity / GNOME). Sebagai alternatif, Anda dapat sepenuhnya mematikan GUI dan dengan demikian sesi Anda dengan berjalan sudo service lightdm stop. edit: lingkungan desktop apa yang Anda gunakan? Openbox hanyalah sebuah window manager. - Cumulus007
Saya mencoba menggunakan KDE / openbox atau gnome / openbox. - Ankit
Tidak berfungsi jika terminal Anda bukan bagian dari sesi dbus yang sama dengan sesi gnome. Bagaimana Anda masuk ke sesi dbus lain? - Zan Lynx
Apakah ini perintah yang dijalankan ketika mengklik "Log Out ..." melalui GUI? - Dor


Mohon mengikuti saran takkat ini. Standarnya adalah Ctrl+Alt+Menghapus.

Anda juga dapat menjalankan:

$ sudo service lightdm restart

6
2017-08-26 16:44



GDM telah digantikan oleh lightdm. Juga, ctrl + alt + backspace dinonaktifkan secara default. - Cumulus007
@ Cumulus007 Terima kasih, jawaban diperbarui. Saya tahu ctrl + alt + backspace dinonaktifkan secara default, tidak pernah mengerti mengapa, tetapi saya menyadarinya. Saya hanya memberi tahu OP tentang kombinasi kunci standar yang paling sering digunakan. Saya merasa yang terbaik adalah tetap berpegang pada standar karena membuatnya lebih mudah untuk memecahkan masalah. - terdon♦
Menghentikan lightdm berarti tidak ada proses masuk setelah itu, jadi dia tidak akan mendapatkan kesempatan untuk masuk ke lingkungan yang berbeda. - poolie
Cukup adil, @poolie, jawaban diperbarui. - terdon♦


Cara lain,

sudo pkill -u NameOftheUser

atau

sudo pkill x

yang membunuh semua pengguna.


3
2018-04-03 16:12



Itu agak kasar, bukankah begitu? - acolyte
Keras? Itu sangat konyol. - Richard Riley


Masalah sebenarnya adalah bahwa variabel sesi DBUS harus ditetapkan dan cocok dengan sesi yang Anda coba kendalikan.

Saya telah membuat skrip ini yang mengatur variabel sesi DBUS dari lingkungan gnome-session jika Anda ingin keluar dari pengguna / sesi lain:

Bagaimana cara merestart Gnome-Shell dari baris perintah?

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
}

1
2018-01-21 13:29



Menggunakan --logout --no-prompt atau --force bukan hanya --logout adalah ide yang lebih baik, jika tidak, prompt logout akan ditampilkan. - gioele


Jika Anda berada di sesi xubuntu atau yang serupa, harus menggunakan perintah xfce4-session-logout dari perintah gnome session, itulah mengapa Anda melihat peringatan


0
2017-12-04 13:14





Inilah yang terbaik untuk saya (dengan xfce, lightdm dan ssh):

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

Atau

$ sudo service lightdm restart

0
2018-05-02 09:46





Anda dapat menggunakan perintah killall gnome-session untuk keluar. Ini akan berfungsi untuk semua sesi GNOME dan jika saya ingat dengan benar semua yang terkait dengan GNOME. Membawa Anda kembali ke LightDM sehingga Anda dapat memilih DE baru atau pengguna baru. :)


-2
2017-08-26 14:22



Bukan cara terbaik untuk keluar. Memeriksa askubuntu.com/questions/69114/… - jokerdino♦
Belum pernah melihat opsi ini sebelumnya. Saya mungkin harus mulai menggunakan ini. Saya mengira itu killall gnome-session adalah cara yang kuat untuk menutupnya. - Ryan McClure