有时会发生某些应用程序崩溃并使 Gnome 桌面不稳定的情况,例如上方的栏消失。通过重新启动 X ctrl+shift+backspace 我可以重置它。但有没有办法完全重新启用 Bar 或 Gnome?
答案1
您应该能够重新启动 Gnome
gnome-shell --replace
从手册:
DESCRIPTION
GNOME Shell provides core user interface functions for the GNOME 3 desktop,
like switching to windows and launching applications. GNOME Shell takes
advantage of the capabilities of modern graphics hardware and introduces
innovative user interface concepts to provide a visually attractive and
easy to use experience.
OPTIONS
--replace
Replace the running window manager
答案2
您可以按 Alt-F2 (IIRC) 打开一个可以键入命令的窗口。除了常规命令之外,GNOME Shell 还支持一些自定义命令来控制桌面环境的行为。在这种情况下,您需要restart
,它会重新启动 Shell,而不是计算机。
如果崩溃太多而无法正常工作,请使用特登的回答。
答案3
TL;DR,如果您无法从 GUI 执行此操作,只需以同一用户身份登录(文本控制台、ssh 等)并输入:
eval "$(while read -d $'\0' line; do printf 'export %q\n' "$line"; done </proc/$(pgrep -fu$USER gnome-session-binary)/environ)"
gnome-shell --replace >.xsession-errors 2>&1 &
我经常通过文本控制台进行此操作。您可以使用CTRL+ ALT+ where切换到其他控制台Fnn是一个免费的控制台号码,通常从登录屏幕开始F3,F1并且F2是第一个会话。
它显然不适用于韦兰因为 gnome-shell 不支持重新启动。
详细解答:
诀窍是复制所需的环境gnome shell- 我还没有确切地验证需要什么,但至少你需要DISPLAY
等等XAUTHORITY
gnome shell可以连接到X服务器,然后很可能需要一些额外的gnome shell及其扩展。
进程树应该看起来有点像这样:
| |-gdm-session-wor(6444)-+-gdm-x-session(6464)-+-Xorg(6466)-+-{InputThread}(6472)
| | | | `-{radeon_cs:0}(6467)
| | | |-gnome-session-b(6475)-+-evolution-alarm(6712)-+-{dconf worker}(6789)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| | | `-{gmain}(6465)
| | |-{gdbus}(6446)
| | `-{gmain}(6445)
在这个例子中gnome 会话二进制文件(pid 6475) 是所有 gnome 会话进程的父进程,因此我用它来获取环境。如果我们gnome-shell
直接使用,我们会看到 gnome-shell 本身为其子进程设置了更多变量。
我用来pgrep
返回PID该进程仅适用于当前用户(即使有多个用户登录,也应该始终只有一个 pid;如果您成功登录两次,则出现了严重错误)。
然后我从(空分隔的环境变量列表)中读取该任务的environ
文件,并在所有行前面加上.然后这些命令通过 反馈到我的 shell 。/proc/<PID>/
export
eval
此时,我可以gnome-shell --replace
像在 GUI 会话中那样运行。如果您打算保持该外壳打开,您可能需要重定向标准输出和标准错误错误率某处也有;你可以将它发送到,/dev/null
但我喜欢保留它以防万一(.xsession-errors
是遗留文件 X 用于将所有 GUI 输出发送到;我相信在现代系统上系统或者日志捕获所有输出并记录它)。
答案4
您可以使用 root 身份重新启动 gnome:
services gdm restart