GNOME Shell 冻结或无响应后,如何重新启动它?

GNOME Shell 冻结或无响应后,如何重新启动它?

有时,我的 GNOME Shell 会冻结。我可以看到(听到)后台进程正在运行(播放音乐),但我无法在 GNOME 中执行任何操作。没有Alt+F2后跟Rand Enter

我可以使用以下方式切换到控制台:Ctrl++ ,以同一用户身份登录并执行:AltF1

gnome-shell --replace

并返回Ctrl+ F7,但随后,我遇到了奇怪的行为。例如,我无法编辑网络连接。我也无法注销。重新启动 的正确方法是什么gnome-shell

答案1

更简单的方法是按Alt+ F2r然后输入Enter。只要 shell 可用,这种方法就有效。

您还可以SIGQUITgnome-shell仅终止 shell 的进程发送:

killall -3 gnome-shell

其他方法使用更具破坏性的手段,即关闭所有应用程序,这不应该。

答案2

  • 如果您想“友好地”要求 gnome-shell 重新启动其自身,那么您可以使用以下命令通过 dbus 调用其内部重新启动功能(假设您已将DBUS_SESSION_BUS_ADDRESSenv 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应该没问题。在控制台上,您需要定义必要的环境变量,如DISPLAYDBUS*等等。请参阅/proc/$gnome_shell_pid/environ

  • 如果您想重新启动现有的,那么killall -HUP gnome-shell就可以这样做。但是,如果您过于频繁地这样做,gnome-shell 可能会禁用所有扩展,强制注销您或以其他不友好的方式运行。

答案3

如果您已经安装了 ubuntu gnome(您应该已经安装了),那么您可能正在使用 gnome 显示管理器。在这种情况下,您应该切换到另一个 TTY,例如 Ctrl + Alt + F4,然后

sudo service gdm restart

我最近也写了一篇关于这种情况的文章:

救命,我的 Linux 桌面挂了!

好运!

答案4

由于您对 不满意gnome-shell --replace,您可能需要尝试重新启动显示管理器本身。

sudo service lightdm restart

我认为这会终止您正在运行的其他进程。另请参阅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>屏幕上的任何东西。

相关内容