Как перезапустить Gnome-shell, после того, как он перестает отвечать на запросы / замораживать?

81

Иногда моя гном-оболочка замерзает. Я могу видеть (слышать) фоновые процессы, работающие (играть музыку), но я ничего не могу сделать в гноме. Нет Alt + F2 + R .

Я могу переключиться на консоль, используя: Ctrl + Alt + F1 , войти как один и тот же пользователь и выполнить:

gnome-shell --replace

и верните назад Ctrl + F7 , но потом я получаю странное поведение. Например, я не могу редактировать сетевые подключения. Я также не могу выйти из системы. Каков правильный способ перезапуска оболочки gnome?

    
задан jk_ 25.04.2014 в 18:12
источник

8 ответов

110

Более простой способ - просто нажать Alt + F2 , введите «r», затем Enter . Это будет работать так долго, что оболочка не будет использоваться.

Вы также можете отправить SIGQUIT в процесс gnome-shell , который завершит только оболочку:

killall -3 gnome-shell

Другие методы используют более разрушительные средства, которые закрывают все приложения. Это не должно.

    
ответ дан Braiam 12.07.2014 в 23:41
21
  • Если вы хотите спросить «красиво» на gnome-shell, чтобы перезапустить его, вы можете вызвать его функцию внутреннего перезапуска по dbus с помощью следующей команды (если у вас есть DBUS_SESSION_BUS_ADDRESS env var, установленное на правильное значение и запускается как одно и то же пользователь):

    dbus-send --type=method_call --print-reply --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'global.reexec_self()'
    
  • Если вы хотите запустить новый экземпляр, gnome-shell --replace должно делать все правильно. На консоли вам необходимо определить необходимые переменные среды, такие как DISPLAY , DBUS* и т. Д. См. /proc/$gnome_shell_pid/environ

  • Если вы хотите перезапустить существующий, то killall -HUP gnome-shell сделает это. Если вы делаете это слишком часто, однако, gnome-shell может отключить все расширения, принудительно вывести вас из системы или иным образом вести себя не дружелюбно.
ответ дан korc 11.09.2015 в 16:06
5

Так как вас не устраивает gnome-shell --replace , вы можете попробовать перезапустить диспетчер дисплея.

sudo service lightdm restart

Я думаю, что убьет другие процессы, которые вы используете. Также см. Ссылка

Если вы серьезно относитесь ко всему, что заставляет вас замораживать каждый раз, включите SysRq, как указано в Ссылка , а затем дайте <alt><sysrq/print_screen_key><k> , чтобы убить все, что там есть на экране.

    
ответ дан Jay Aurabind 25.04.2014 в 18:52
4

Если вы установили gnome ubuntu, который у вас должен быть, вы можете использовать диспетчер отображения gnome. В этом случае вы должны перейти на другой TTY, например Ctrl + Alt + F4, а затем

sudo service gdm restart

Недавно я написал статью о такой ситуации:

Справка, мой Linux Desktop зависает!

Лучшая удача!

    
ответ дан Gerhard Stein 03.04.2017 в 08:50
4

Я столкнулся с одной и той же проблемой, и я нашел другое обходное решение:

  1. Войдите в локальный терминал, нажав CTRL + ALT + F1
  2. Запустите команду: sudo kill -HUP 'pidof gnome-shell'
  3. Вернитесь к графическому интерфейсу, нажав CTRL + ALT + F7

PS: Я использую lightdm вместо gdm3.

    
ответ дан masina 18.10.2017 в 21:42
2

У меня иногда возникает та же проблема, что и вы, и мое решение:

Ctrl + Alt + F1 , войдите в систему как один и тот же пользователь и выполните:

sudo pkill -9 ^gnome-shell

И вернитесь с помощью Ctrl + Alt + F7

Если это правильно, я не знаю. Для меня это работает каждый раз.

    
ответ дан landas 26.04.2014 в 05:02
2

Перезапустить X

  • Сначала найдите, какой диспетчер дисплеев Ubuntu использует следующую команду:

    cat /etc/X11/default-display-manager
    

    в моем случае это /usr/sbin/gdm3

    Изнутри X или ВНЕШНИЙ X

Для метода от 1 до 4

  • узнать, какой дисплей вы используете, используя команду w .

        w
    

    ответом может быть, например, tty3 , (поэтому my (ack's) "return to my display" key Ctl + Alt + F3

Способ 1

‣ Ctl + Alt + F1 для выхода, а Ctl + Alt + F3 - для возврата назад

Способ 2

    sudo /etc/init.d/gdm3 restart

Способ 3

    systemctl restart gdm.service

Метод 4

    sudo service gdm3 restart

Метод 5

    dbus-send --type=method_call --print-reply --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'global.reexec_self()'

Метод 6

Легкий способ - просто нажать Alt + F2 и набрать r , затем нажать enter. Это будет работать так долго, что оболочка не будет использоваться.

    
ответ дан markackerman8-gmail.com 10.10.2017 в 16:36
0

kill -15 gnome-shell не работает для меня, но kill -9 делает. Я думаю, что это потому, что kill -9 запускает segfault, который запускает gnome-shell для перезапуска, а kill -15 не делает.

    
ответ дан Walter 17.01.2016 в 22:23