Pertanyaan Bagaimana me-restart GNOME Shell dari command line?


Saya ingin menerapkan pintasan keyboard untuk memulai ulang gnome-shell setiap kali ini macet (beberapa bug belum diperbaiki sekarang). Untuk ini, saya akan membutuhkan baris perintah untuk me-restart shell.

Itu Alt+F2 dan restart perintah tidak akan berfungsi saat shell crash karena prompt diimplementasikan di kerang.

Oleh karena itu, cara memulai kembali gnome-shell dari baris perintah?


31
2018-01-31 15:19


asal


CATATAN: Alt + F2 dan restart akan menghentikan semua program yang sedang berjalan. (Saya masih tidak tahu cara me-restart GUI tanpa menghentikan program.) - Andriy Makukha


Jawaban:


Perintah untuk mengganti gnome-shell adalah gnome-shell --replace.

Dari halaman manual gnome-shell:

--replace             Replace the running window manager

33
2018-01-31 15:27



Terima kasih, saya tidak yakin --replace = "mulai ulang". - Benjamin


Cara termudah adalah dengan Alt+F2 dan ketik r kemudian .


19
2017-10-28 11:41



Itu benar, tapi sebenarnya bukan pertanyaannya. Pertanyaannya kemudian adalah: apa yang terjadi ketika Anda melakukan ini. Sehingga Anda bisa melakukannya sendiri - sehe


Perintahnya seharusnya gnome-shell --replace.


6
2018-01-31 15:26





Anda juga bisa melakukan killall -3 gnome-shell.


5
2017-08-19 20:11



Saya tidak tahu mengapa orang terus merekomendasikan perintah ini. Semua ini adalah membunuh gnome-shell. Bagaimana Anda menjawab pertanyaan untuk memulai kembali? - smac89


Saya datang dengan fungsi ini untuk logout pengguna (lihat di bagian bawah)

Itu mengasumsikan

  • Anda memiliki izin sudo
  • kamu memiliki bash
  • pengguna memiliki 1 sesi X yang sedang berjalan (meskipun Anda seharusnya dapat mengeluarkan perintah logout yang sama beberapa kali untuk menyingkirkan sesi yang tersisa)

Anda dapat memberinya beberapa nama pengguna:

logout john jane mike elisa

Dan Anda dapat memberikan opsi tambahan:

logout john --force

Jadi, saya memiliki fungsi pembantu berikut:

function forcelogout() {
    logout "$@" --no-prompt --force
}

Catatan:

  • Ini adalah instrumen tumpul dan bekerja hanya dengan menyalin seluruh lingkungan sesi. Ini bisa lebih selektif.
  • Terkadang logout tampaknya memakan waktu cukup lama
  • Terkadang sesi tersebut terus dilaporkan sampai seseorang mengunjungi vt tempat sesi berjalan, tetapi tidak ada lagi di sana)

KODE

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 12:24





Saya mendefinisikan alias: alias gnomeshellrestart='echo "gnome-shell --replace -d" $(w| grep "$USER"| awk "{print \$3}"|grep ":"|head -1)| at now'

Anda mungkin dapat memulai terminal dengan mengklik kanan dengan mouse di latar belakang dan ketik di sana (alt-tab disfct kemudian, juga), jika tidak, login ke tty dengan mis. ctrl-alt-F2 dan lari dari sana.


1
2017-10-04 14:40





Dalam hal keseluruhan gnome-shell dibekukan ada cara untuk merestartnya dari terminal tanpa memulai ulang seluruh jendela X:

  • Ctrl+Alt+F2 untuk beralih ke terminal
  • masuk dengan kredensial Anda (nama pengguna dan kata sandi) dan kemudian jalankan:
  • DISPLAY=:0 gnome-shell -r &
  • keluar exit dan
  • Alt+F1 untuk beralih kembali ke antarmuka grafis X Window.

1
2018-06-18 11:29