Иногда мой панцирь гнома зависает. Я вижу (слышу) фоновые процессы, работающие (играющие музыку), но я ничего не могу сделать в gnome. Нет Alt+ F2+ R.
Я могу переключиться на консоль, используя: Ctrl+ Alt+ F1, войдите под тем же пользователем и выполните:
gnome-shell --replace
и вернуться назад Ctrl+ F7, но тогда я получаю странное поведение. Например, я не могу редактировать сетевые подключения. Я также не могу выйти из системы. Как правильно перезапустить оболочку гнома?
gnome
gnome-shell
jk_
источник
источник
gnome-shell overview
или, в каком конкретном случае, если вы можете сказать?Ответы:
Более простой способ - просто нажать Alt+ F2,
r
затем наберите Enter. Это будет работать до тех пор, пока оболочка пригодна для использования.Вы также можете отправить
SIGQUIT
вgnome-shell
процесс , который завершится только оболочка:Другие методы используют более разрушительные средства, которые не должны закрывать все приложения.
источник
SIGHUP
подсказку, однако, не будет ли правильная командаkillall -1 gnome-shell
? По крайней мере, согласноman 7 signal
, значение дляSIGHUP
равно 1. Значение 3 соответствуетSIGQUIT
. Я отправил значение 1 в оболочку Gnome, и он был перезапущен, как и ожидалось.killall -3 gnome-shell
результате убил все приложения для меня.Alt+F2
иr
, то есть, не закрывая весь экран ...Если вы хотите попросить «приятно» перезапустить gnome-shell, то вы можете вызвать его внутреннюю функцию перезапуска через dbus с помощью следующей команды (при условии, что для
DBUS_SESSION_BUS_ADDRESS
env var задано правильное значение и вы работаете от имени того же пользователя):Если вы хотите запустить новый экземпляр,
gnome-shell --replace
все будет в порядке. На консоли вам нужно определить необходимые переменные окружения, напримерDISPLAY
,DBUS*
и так далее. Ссылаться на/proc/$gnome_shell_pid/environ
killall -HUP gnome-shell
сделайте это. Если вы делаете это слишком часто, gnome-shell может отключить все расширения, принудительно выйти из системы или иным образом вести себя не в удобной для пользователя манере.источник
logout otheruser1 otheruser2
) askubuntu.com/a/874504/17941Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.Shell was not provided by any .service files
без sudo иFailed to open connection to "session" message bus: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
с sudo.Вот другой обходной путь:
Запустите команду:
PS: я использую lightdm вместо gdm3.
источник
Если вы установили ubuntu gnome, который у вас должен быть, возможно, вы используете менеджер дисплеев gnome. В этом случае вам следует перейти на другой TTY, например, Ctrl + Alt + F4, а затем
Я также недавно написал статью о такой ситуации:
Помогите, мой Linux Desktop зависает!
Удачи!
источник
Поскольку вас это не устраивает
gnome-shell --replace
, вы можете попробовать перезапустить менеджер дисплеев.Я думаю, что это убьет другие процессы, которые вы запускаете. Также см. Http://worldofgnome.org/how-to-restart-gnome-shell-when-freezes-if-ever/
Если вы серьезно относитесь к чему-то, что заставляет вас зависать каждый раз, включите SysRq, как указано в https://www.kernel.org/doc/Documentation/admin-guide/sysrq.rst , а затем дайте
<alt><sysrq/print_screen_key><k>
убить все, что там есть на экран.источник
DISPLAY=:7 gnome-shell --replace
работает?w
показы дисплея отличаются от : 0 . Если я использую неправильный дисплей, я получаю ошибку.alt-f2-r
илиgnome-shell --replace
когда это рекомендовано гномом.Иногда у меня возникает та же проблема, что и вы, и мое решение:
Ctrl+ Alt+ F1, войдите под тем же пользователем и выполните:
И вернитесь назад с Ctrl+ Alt+F7
Если это правильный путь, я не знаю. Для меня это работает каждый раз.
источник
Перезагрузите X
Сначала найдите, какой менеджер дисплеев использует ваша Ubuntu, с помощью следующей команды:
в моем случае это
/usr/sbin/gdm3
Изнутри X или ВНЕ X
Для методов с 1 по 4 выясните, какой дисплей вы используете, используя
w
команду.ответом может быть, например
tty3
, (для этого моя клавиша «вернуться к моему отображению» - Ctrl + Alt + F3)методы
sudo /etc/init.d/gdm3 restart
systemctl restart gdm.service
sudo service gdm3 restart
dbus-send --type=method_call --print-reply --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'global.reexec_self()'
r
затем нажать Enter. Это будет работать до тех пор, пока оболочка не станет непригодной для использования.источник
Нажмите Ctrl + Alt + F2, чтобы переключиться в окно терминала. Иногда это невозможно.
Нажмите Alt + SysRq + R, чтобы получить клавиатуру.
Если нажатие Ctrl + Alt + F2 раньше не удавалось, попробуйте снова.
Нажмите Alt + SysRq + E, чтобы завершить все процессы.
Нажмите Alt + SysRq + I, чтобы убить все процессы.
Нажмите Alt + SysRq + S, чтобы синхронизировать ваши диски.
Дождитесь сообщения ОК или Готово. Если вы не видите сообщение, посмотрите на индикатор жесткого диска, чтобы увидеть, если Синхронизация имеет значение.
Нажмите Alt + SysRq + U, чтобы размонтировать все диски.
Дождитесь сообщения ОК или Готово. Если вы не видите сообщения в течение 15-30 секунд, предположите, что диски отключены (или что отключение невозможно) и продолжите работу.
Нажмите Alt + SysRq + B для перезагрузки.
источник
kill -15 gnome-shell
не работает для меня, ноkill -9
работает. Я думаю, это потому, чтоkill -9
запускает segfault, который запускает gnome-shell для перезапуска, аkill -15
это не так.источник
kill -9
не вызывает segfault. Он посылает SIGKILL, неуловимый сигнал, для которого единственное действие - немедленно выйти. Его следует использовать только в том случае, если приложение не отвечает на SIGTERM, т.pkill -11 gnome-shell
вызовет segfault, так как это буквально то, что делает сигнал 11. Кстати,kill
нужен идентификатор процесса, а не имя процесса. Вы имели в видуpkill
илиkillall
?