GNOME Kabuğunu komut satırından nasıl yeniden başlatabilirim?


50

Bu çarptığında gnome-shell'i yeniden başlatmak için bir klavye kısayolu uygulamak istiyorum ( henüz bazı hatalar henüz düzeltilmedi). Bunun için kabuğu yeniden başlatmak için bir komut satırı gerekir.

Alt+ F2Ve restartkomut istemi uygulanır, çünkü kabuk çöktü olduğunda çalışmaz içinde kabuk.

Bu nedenle, gnome-shell komut satırından nasıl yeniden başlatılır?


NOT: Alt + F2 ve restartçalışan tüm programları durduracak. (Programları durdurmadan GUI'yi nasıl yeniden başlatacağımı hâlâ bilmiyorum.)
Andriy Makukha

Yanıtlar:


48

GNOME kabuğunu değiştirme komutu olacaktır gnome-shell --replace.

Kılavuz sayfasından gnome-shell:

--replace             Replace the running window manager

2
Teşekkürler emin değildim --replace= "yeniden başlatma".
Benjamin

4
GNOME Shell 3.30.1'den itibaren Ubuntu 18.10'daki bu çözüm artık işe yaramıyor ve tüm çalışmalarını kaybederek kullanıcıyı giriş ekranına atacak. Doğru çözüm şimdi komut satırıdır: "killall -3 gnome-shell" veya ALT + f2 ve r (mümkünse).
C.Rogers,

1
ALT+f2(komut istemini göster) + gnome-shell --replace, 18.04'te iyi çalışacaktır. Çalışan tüm programlar durmayacak.
lifeisfoo

İşlemi arkaplana koymak için komutun sonuna ve işaretini eklerim, böylece terminali gnome kabuğunu öldürmeden kapatabilirim:gnome-shell --replace &
Teddy

31

En kolay yol Alt+ F2yazıp rsonra yazmaktır .


5
Bu doğru, ama kesinlikle soru değil. O zaman soru şudur: Bunu yaptığınızda ne olur. Böylece kendiniz yapabilirsiniz
17'de

4
GNOME Shell 3.30.1'den itibaren Ubuntu 18.10'da ve komut satırında: "killall -3 gnome-shell" burada çalışan tek çözüm bu. Diğerleri, tüm çalışmalarını kaybederek kullanıcıyı giriş ekranına atıyor.
C.Rogers,

1
Bunu Debian Buster'da denedim. "Yeniden başlatma, yol üzerinde mevcut değil" hatası alıyorum.
livinston

26

Ayrıca bir de yapabilirsiniz killall -3 gnome-shell.


2
İnsanların neden bu emrini tavsiye etmeye devam ettiğini bilmiyorum. Bütün bunlar gnome kabuğunu öldürmek. Yeniden başlatma sorusunu nasıl cevapladınız?
smac89

1
Muhtemelen bu, diğer komutun çalışmadığı durumlarda bu iyi bir çözümdür. İkisini de denedim, seçilen kişi iyi ama sorunumu çözmedi, bu arada.
Mitro

2
Ubuntu 18.10'dan itibaren GNOME Shell 3.30.1 - DOĞRU ÇÖZÜMDÜR. Diğer tüm çözümler oturumu yeniden başlatır ve tüm çalışmalarını kaybederek kullanıcıyı oturum açma ekranına gönderir.
C.Rogers

3
SIGQUIT (3) süreci öldürmez
Jack Wasey 11

Bu benim için çalışıyor gibiydi. Oysa ben daha gnome-shell --replace &önce kullanıyordum . İşe yaradı ama terminalde çalışmaya devam etti. Karşılaştığım sorun, Youtube videolarının tam ekran olmasıydı ve bir şekilde Dash-to-Dock ve panelin donmasına neden oldu. github.com/micheleg/dash-to-dock/issues/…
Natetronn

5

Komut sadece olmalı gnome-shell --replace.


3
GNOME Shell 3.30.1'den itibaren Ubuntu 18.10'daki bu çözüm artık işe yaramıyor ve tüm çalışmalarını kaybederek kullanıcıyı giriş ekranına atacak. Doğru çözüm şimdi komut satırıdır: "killall -3 gnome-shell" veya ALT + f2 ve r (mümkünse).
C.Rogers,

Uzak oturum için çalışmaz, bu nedenle GNOME kabuğu donmuşsa bu çalışmaz.
Jack Wasey 11 Ocak'ta

5

Bütünün gnome-shelldonması durumunda, tüm X penceresini yeniden başlatmadan terminalden yeniden başlatmanın bir yolu vardır:

  • Ctrl+ Alt+ F2terminale geçmek için
  • Kimlik bilgilerinizle (kullanıcı adı ve şifre) giriş yapın ve ardından şunları çalıştırın:
  • DISPLAY=:0 gnome-shell -r &
  • oturumu kapat exitve
  • Alt+ F1X grafiksel arayüzüne geri dönmek için.

1

Kullanıcıları kapatmak için bu fonksiyonla geldim (en alta bakınız)

Varsayılır

  • sudo izinlerine sahipsin
  • bash var
  • kullanıcıların 1 çalışan X oturumu vardır (kalan oturumlardan kurtulmak için aynı oturum kapatma komutunu birkaç kez verebilmeniz gerekir)

Birden çok kullanıcı adı verebilirsiniz:

logout john jane mike elisa

Ve ek seçenekler de verebilirsiniz:

logout john --force

Yani, aşağıdaki yardımcı işlevi var:

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

Notlar:

  • Bu kör bir enstrümandır ve tüm oturum ortamını kopyalayarak çalışır. Bu daha seçici olabilir.
  • Bazen çıkış biraz zaman alıyor gibi görünüyor.
  • Nadir durumlarda, oturum oturumun koştuğu vt'yi ziyaret edene kadar oturum rapor edilir, ancak artık hiçbir şey yoktur)

KOD

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

Bir takma ad tanımladım: alias gnomeshellrestart='echo "gnome-shell --replace -d" $(w| grep "$USER"| awk "{print \$3}"|grep ":"|head -1)| at now'

Bir terminale arka plan üzerinde fareyle sağ tıklayarak ve orada yazarak (alt sekme de dysfct olur), eğer değilse, örneğin ctrl-alt-F2 ile bir tty'ye giriş yapabilir ve oradan kaçabilirsiniz.

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.