我可以使用Ctrl + Alt + F1切换到控制台,以同一用户身份登录并执行:
gnome-shell --replace
并返回Ctrl + F7,但是随后出现奇怪的行为。例如,我无法编辑网络连接。我也无法注销。重新启动
gnome-shell
的正确方法是什么?#1 楼
更简单的方法是按Alt + F2,输入r
,然后按Enter。只要外壳可用,它就可以工作。还可以将
SIGQUIT
发送到gnome-shell
进程,该进程将仅终止外壳:killall -3 gnome-shell
其他方法使用更具破坏性的方法,该方法会关闭所有应用程序,这不应该。
评论
+1是SIGHUP技巧,但是,正确的命令不是killall -1 gnome-shell吗?至少根据man 7信号,SIGHUP的值为1。值3对应于SIGQUIT。我已将值1发送到Gnome Shell,它已按预期完全重新启动。
–Chriki
2015年4月29日在8:24
我在Fedora 25上进行了尝试,使用killall -3 gnome-shell导致了我的所有应用程序被杀死。
–comfreak
17年5月26日在16:08
我希望我们也可以使用一个与Alt + F2和r具有完全相同效果的终端命令,即不消隐整个屏幕...
– Sadi
17年6月11日在14:04
我在ubuntu vm上遇到了很多gnome崩溃的问题,每次发生时我都必须重新启动VM。能够使用ssh并使用此命令可以解决该问题,谢谢您一百万。
– Nathan F.
18年4月14日在21:38
killall -3 gnome-shell非常适合Ubuntu 18.04
–user1133275
19年1月31日在17:27
#2 楼
如果您想“很好地”要求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可能会禁用所有扩展,强行注销您,或者以非用户友好的方式运行。评论
我创建了一个shell函数,该函数从gnome-shell进程环境中设置DBUS_SESSION_BUS_ADDRESS(这样您就可以注销otheruser1 otheruser2)askubuntu.com/a/874504/17941
–sehe
17年1月21日在13:25
收到错误错误org.freedesktop.DBus.Error.ServiceUnknown:没有sudo的任何.service文件都未提供名称org.gnome.Shell,并且无法打开与“会话”消息总线的连接:无法自动启动dbus守护程序没有带有sudo的X11的$ DISPLAY。
– Seanny123
17年11月9日在16:24
如果没有gnome-shell运行(即它死了)怎么办?一个人怎么会得到DISPLAY和其他变量
– Dan M.
19/12/20在15:50
这次真是万分感谢!
–seanbreeden
20-10-19在21:26
#3 楼
这是一个不同的解决方法:通过按CTRL + ALT + F1登录本地终端。
运行命令:
sudo kill -HUP $(pidof gnome-shell)
通过按CTRL + ALT + F7返回图形界面。
PS:我使用的是lightdm而不是gdm3。
评论
简单,而且像魅力! (至少对于我来说)
–加泰
18年5月10日在12:51
尽管这确实成功地重启了gnome-shell;我发现有些程序-可能是那些与GNOME集成程度较差的程序-无法生存。例如:Firefox,Thunderbird,VirtualBox VM。可以生存的程序示例:“文件”,Terminal,ImageViewer。理想情况下,有一种方法可以在不损害任何正在运行的程序的情况下重新启动gnome-shell(Ubuntu 19.10)
–sxc731
19年11月20日在10:28
#4 楼
如果您已经安装了ubuntu gnome,那么您可能正在使用gnome显示管理器。在这种情况下,您应该更改为另一个TTY,例如Ctrl + Alt + F4,然后sudo service gdm restart
我最近也写了一篇有关这种情况的文章:
帮助,我的Linux桌面挂起了! />祝你好运!
评论
请注意,我是在同一TTY上执行的,这会终止当前会话。
–卢梭·亚历山大(RousseauAlexandre)
18-10-24在12:51
这完全搞砸了当前会话:它开始闪烁,然后进入必杀技..必须重新启动。
–尼克·奥莱(Nik O'Lai)
19-10-11在18:11
#5 楼
由于您对gnome-shell --replace
不满意,因此您可能想尝试重新启动显示管理器本身。sudo service lightdm restart
我认为这将杀死您正在运行的其他进程。 >另请参阅http://worldofgnome.org/how-to-restart-gnome-shell-when-freezes-if-ever/
如果您认真地尝试使自己每次冻结,请启用https://www.kernel.org/doc/Documentation/admin-guide/sysrq.rst中提到的SysRq,然后给
<alt><sysrq/print_screen_key><k>
杀死屏幕上的所有内容。评论
重新启动lighdm是可行的,但我想避免它,因为我必须从头开始重新打开所有内容。特别是如果我知道这是Gnome-shell的问题,然后重新启动它几乎可以正常工作。
– jk_
2014年4月25日在17:29
我不知道其他方法来重新启动gnome shell。您是否尝试过DISPLAY =:7 gnome-shell --replace是否有效?
–杰伊·奥拉宾德(Jay Aurabind)
2014年4月25日在17:43
不,不是,当w显示的显示与:0不同时,我使用display。如果我使用了错误的显示,则会收到错误消息。
– jk_
2014-4-26 9:07
抱歉,我没办法了。您可能应该在gnome用户/开发人员邮件列表中询问。首先弄清楚为什么alt-f2-r或gnome-shell --replace是异常,这是gnome的推荐方法。
–杰伊·奥拉宾德(Jay Aurabind)
2014年4月26日9:45
我也是。我什至都遵循此链接设置了更多的ENV变量,但是当从其他终端重新启动gnome-shell时,我仍然无法编辑网络连接。最后,我得到了这个技巧
– jk_
2014年4月29日12:38
#6 楼
重新启动X首先使用以下命令查找您的Ubuntu使用的显示管理器:
cat /etc/X11/default-display-manager
在我的如果是
/usr/sbin/gdm3
,请使用Inside X或OUTSIDE X 对于方法1至4,请使用
w
命令找出正在使用的显示。 br /> w
答案可能例如是
tty3
,(因此,我(ack的)“返回到我的显示”键是Ctrl + Alt + F3 方法
Ctrl + Alt + F1退出,而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()'
一种简单的方法是按Alt + F2,然后键入
r
,然后按Enter。这将在不损坏外壳的情况下起作用。评论
方法5从korc的答案中逐字删除,方法6从Braiam的答案中逐字删除。窃不违反这里的规则,但绝对不酷。您真正需要做的就是通过用引号将其表示为作品,而不是您自己的作品,并通过添加源文章链接和作者个人资料页面链接来注明出处。有关更多详细信息,请参见此博客文章:必填属性
– wjandrea
19/09/1在18:31
#7 楼
我有时确实遇到与您描述的问题相同的问题,而我的解决方案是:Ctrl + Alt + F1,以同一用户身份登录并执行:
sudo pkill -9 ^gnome-shell
然后按Ctrl + Alt + F7返回。
如果这是正确的方法,我不知道。对我来说,它每次都能工作。
评论
这将杀死所有用户的gnome-shell实例,这在多用户方案中可能不是您想要执行的操作。通常,您只需要杀死自己的即可(pkill -HUP gnome-shell)
– Steve McCauley
2014年8月4日13:37
太棒了,对我有用...!你救了我的一天。赞赏。
– NomanJaved
18年5月18日在19:13
#8 楼
按Ctrl + Alt + F2切换到终端窗口。有时,这是不可能的。
按Alt + SysRq + R来获取键盘。
如果在失败之前按Ctrl + Alt + F2,请立即重试。
按Alt + SysRq + E终止所有进程。
按Alt + SysRq + I终止所有进程。
按Alt + SysRq + S同步磁盘。
等待OK(确定)或Done(完成)消息。如果看不到消息,请查看HDD指示灯以查看同步是否有所帮助。
按Alt + SysRq + U卸载所有磁盘驱动器。
等待OK(确定)或Done(完成)消息。如果您在15到30秒钟内没有看到任何消息,请假设已卸下磁盘(或无法卸下磁盘)并继续。
按Alt + SysRq + B重启。
#9 楼
kill -15 gnome-shell
对我不起作用,但kill -9
对我有用。我认为这是因为kill -9
触发了segfault,从而触发了gnome-shell重新启动自身,而kill -15
却没有。评论
kill -9不会触发段错误。它发送SIGKILL,这是一个不可捕获的信号,对此,唯一的动作是立即退出。仅在应用程序不响应SIGTERM(即15)时才应使用它。
–muru
16年1月17日在21:28
pkill -11 gnome-shell会触发一个段错误,因为这实际上就是信号11所做的。顺便说一句,kill需要一个进程ID,而不是进程名。你是说杀人还是杀人?
– TSJNachos117
17-10-10在15:42
评论
在gnome-shell概述中使用搜索功能时,gnome-shell是否冻结,或者在特定情况下(如果可以告诉您)?不,登录后(通常),通常在取消对接后,它会冻结。
到目前为止,我还没有找到可行的解决方案。最后,我得到了这种解决方法。
如果您使用以下任何shell扩展:extensions.gnome.org,请全部停用它们并重新启动,以查看其中一个是否引起了麻烦。我使用的是gnome-shell的旧版本,由于该确切原因,出现了很多问题! (也许就这么简单?!)
我试图停用所有这些,但仍然有问题:(