我为自己能够在重新启动之间保持系统长时间运行而感到自豪。我有一个长期运行的 RHEL7 工作站。有时(通常是连续运行一个月)窗口管理器会崩溃。我所说的崩溃是指窗口“可见”,但没有标题栏、菜单等。鼠标指针可以移动,但焦点无法更改。
不过,我可以使用 Alt-F1 等切换到终端会话。
在以前的系统上,我可以使用以下命令重新启动窗口管理器:
metacity --replace
或者
compiz --replace
这将恢复我的会话,甚至无需注销。但是,我不清楚哪个窗口管理器正在运行。我怎样才能找到答案?
请注意,我知道您可以重新启动展示经理使用:
systemctl restart display-manager
但这会启动一个新会话并要求您重新登录。我希望能够重新启动崩溃的 wm 进程而不执行此操作。
我认为在幕后这仍然是 gnome3 使用 wayland、mutter 或类似的东西。实际上是否有一个单独的窗口管理器我可以重新启动?如果不,为什么不呢?
答案1
是的。仍然有一个窗口管理器,您可以重新启动它。您可以确认您正在运行 gnome-classic,如下所示:
>set | grep DESK
DESKTOP_SESSION=gnome-classic
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
IMSETTINGS_INTEGRATE_DESKTOP=yes
XDG_CURRENT_DESKTOP=GNOME-Classic:GNOME
XDG_SESSION_DESKTOP=gnome-classic
您可以通过在活动中输入“about”来识别版本(我的版本是 3.22.2),如下所示:
https://help.gnome.org/users/gnome-help/stable/gnome-version.html.en
您可以使用控制面板识别所使用的窗口管理器。目前标准的 Redhat 存储库中缺少此功能(https://bugzilla.redhat.com/show_bug.cgi?id=1326876)但可以从 nux-dextop 仓库获得(https://li.nux.ro/repos.html)
>wmctrl -m
Name: GNOME Shell
Class: N/A
PID: N/A
然后:
>ps aux | grep -i shell
显示 gnome-shell 正在运行。
>man gnome-shell
显示 gnome-shell 支持 --replace 参数,因此可以像以前一样用于重新启动窗口管理器。
gnome-shell --replace &