我遇到了一个非常奇怪的问题,Ubuntu 会话从 LightDM 会话列表中消失了。我通常使用 LXDE/Lubuntu 作为会话,甚至很少登录 Unity/Ubuntu 桌面,但它曾经工作得很顺畅,可以来回切换。现在,突然之间,Ubuntu 会话不再列出。经过一番广泛的研究,我似乎无法自己弄清楚。以下是相关信息:
1)会议正在进行:
$ ls -al /usr/share/xsessions/
total 36
drwxr-xr-x 2 root root 4096 Jan 24 22:04 .
drwxr-xr-x 313 root root 12288 Feb 15 10:50 ..
-rw-r--r-- 1 root root 157 Okt 9 18:02 Lubuntu.desktop
-rw-r--r-- 1 root root 165 Okt 9 18:02 Lubuntu-Netbook.desktop
-rw-r--r-- 1 root root 1507 Feb 27 2016 LXDE.desktop
-rw-r--r-- 1 root root 198 Okt 14 2015 openbox.desktop
-rw-r--r-- 1 root root 204 Aug 22 2016 ubuntu.desktop
$ cat /usr/share/xsessions/ubuntu.desktop
[Desktop Entry]
Name=Ubuntu
Comment=This session logs you into Ubuntu
Exec=gnome-session --session=ubuntu
TryExec=unity
Icon=
Type=Application
DesktopNames=Unity
X-Ubuntu-Gettext-Domain=gnome-session-3.0
2) LightDM 列出了所有会话,但不包括 Ubuntu 会话。日志文件甚至明确指出它正在忽略它(请参阅相关日志文件的摘录):
$ sudo cat /var/log/lightdm/seat0-greeter.log
[...]
[+0,16s] DEBUG: Loaded session /usr/share/xsessions/openbox.desktop (Openbox, Log in using the Openbox window manager (without a session manager))
[+0,16s] DEBUG: Loaded session /usr/share/xsessions/Lubuntu.desktop (Lubuntu, Lubuntu - Lightweight X11 desktop environment based on LXDE)
[+0,16s] DEBUG: Loaded session /usr/share/xsessions/LXDE.desktop (LXDE, LXDE - Lightweight X11 desktop environment)
[+0,16s] DEBUG: Ignoring session /usr/share/xsessions/ubuntu.desktop
[+0,16s] DEBUG: Loaded session /usr/share/xsessions/Lubuntu-Netbook.desktop (Lubuntu Netbook, Lubuntu Netbook - Lubuntu based session for netbook)
[...]
[+3,00s] DEBUG: session-list.vala:49: Adding session LXDE (LXDE)
[+3,00s] DEBUG: session-list.vala:49: Adding session Lubuntu (Lubuntu)
[+3,00s] DEBUG: session-list.vala:49: Adding session Lubuntu-Netbook (Lubuntu Netbook)
[+3,00s] DEBUG: session-list.vala:49: Adding session openbox (Openbox)
[+3,01s] DEBUG: greeter-list.vala:210: Error registering user list dbus object: An object is already exported for the interface com.canonical.UnityGreeter.List at /list
(nm-applet:3866): GLib-GObject-WARNING **: invalid unclassed pointer in cast to 'GtkWidget'
(nm-applet:3866): Gtk-CRITICAL **: gtk_widget_show: assertion 'GTK_IS_WIDGET (widget)' failed
[+8,61s] DEBUG: session-list.vala:49: Adding session LXDE (LXDE)
[+8,61s] DEBUG: session-list.vala:49: Adding session Lubuntu (Lubuntu)
[+8,61s] DEBUG: session-list.vala:49: Adding session Lubuntu-Netbook (Lubuntu Netbook)
[+8,61s] DEBUG: session-list.vala:49: Adding session openbox (Openbox)
[+8,61s] DEBUG: greeter-list.vala:210: Error registering user list dbus object: An object is already exported for the interface com.canonical.UnityGreeter.List at /list
[...]
我确实这样做了,不知何故变得绝望,已经尝试 dpkg-reconfigure lightdm 和 ubuntu-session。什么也没做。
我确实看到“DesktopNames=Unity”不是 FreeDesktop 标准定义,但我手动从 xenial 下载了“ubuntu-session (3.18.1.2-1ubuntu1)”并从 xenial-updates 下载了“ubuntu-session (3.18.1.2-1ubuntu1.16.04.2)”,提取它们,查看它们各自的 /usr/share/xessions/ubuntu.desktop 并且它们完全匹配(我认为对它的某些更新可能会弄乱它)。
我的系统是最新的。
答案1
我在这里提供我自己问题的答案,因为我希望它能帮助其他人,最终遇到同样的问题。我已经能够解决这个问题 - 感谢 Terrance 在本帖中的帮助以及 N0rbert 在2018 年 2 月 15 日 compiz 更新导致 Unity 崩溃(相关问题),所有功劳都归于他们。
今天推送了一些更新。我所做的只是(再次)更新系统,并重新安装 unity 和 ubuntu-desktop,这对我来说是必要的,因为它们显然早些时候被删除了。
$ dpkg -l compiz-core
[...]
ii compiz-core 1:0.9.12.3+1 amd64 OpenGL window and compositing man
$ apt-cache show compiz-core
Package: compiz-core
Architecture: amd64
Version: 1:0.9.12.3+16.04.20171116-0ubuntu1
[...]
Provides: compiz-core-abiversion-20170630
[...]
$ sudo apt-get install unity ubuntu-desktop
[...]
我甚至不需要明确安装 compiz-core-abiversion-20170630。但需要手动重新安装 unity 和 ubuntu-desktop。
这样做之后,我的 LightDM 会话列表恢复正常,并且我可以(再次)启动 Unity/Ubuntu 桌面会话,到目前为止一切正常。