问题

问题

我最近在类似的系统上安装了两次 Ubuntu 18.04。唯一的区别是,一个运行 GTX 1070,另一个运行 GTX 1080。

问题

安装 Nvidia 驱动程序(二进制 390.59)后,每次重启后都会创建一个重复的 xorg 会话。一个在我的用户帐户(1000)上运行,另一个在用户帐户(120,猜测是服务帐户)上运行。

root      1038  0.0  0.1 249052 46432 tty1     Sl+  09:09   0:01 /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/120/gdm/Xauthority -background none -noreset -keeptty -verbose 3
root      2157  0.4  0.2 358056 77424 tty2     Sl+  09:11   0:13 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3

Nvidia-smi 还显示 GPU 上运行两个 xorg 会话

|    0      1038      G   /usr/lib/xorg/Xorg                            18MiB |
|    0      1100      G   /usr/bin/gnome-shell                          49MiB |
|    0      2157      G   /usr/lib/xorg/Xorg                           173MiB |
|    0      2298      G   /usr/bin/gnome-shell                         116MiB

除了这个额外的进程之外,一切都正常运行。它似乎没有干扰任何事情,但我想弄清楚为什么会发生这种情况。在同样的两个系统上,我运行了 Ubuntu 16.04 和 CentOS,并没有注意到这个重复的 xorg 进程。如果有人有任何信息可以给我指明正确的方向,那就太好了。

答案1

感谢这个问题“为什么我的 GDM 与我的桌面环境的 TTY 不同?“我找到了两个 xorg 会话的原因。Gnome 桌面管理器使用两个 xorg 会话,一个用作欢迎程序(登录),另一个用作用户会话。过去,一个 xorg 会话是用 root 创建的,后来转变为用户会话。然而,出于未来的开发计划,决定将这些会话分开。

在这里阅读更多相关信息:

https://bugzilla.gnome.org/show_bug.cgi?id=747339

让我进一步解释一下我们为什么这样做。

以前,我们以 root 身份启动一个 X 服务器,然后当您登录时,我们会将其“变形”为会话 X 服务器。如果您要快速切换用户,我们会根据需要启动第二个 X 服务器。

出于安全原因和 Wayland 移植原因,我们现在在用户会话中启动 X 服务器和 Wayland 服务器,而不是以 root 身份启动一个。

我们这样做的方法是启动两个 X 服务器,一个用于 gdm 欢迎会话,另一个用于会话用户。

在我们切换到用户会话之后,完全可以拆除欢迎程序,这只需要多一点代码,但不幸的是,我们不可能将欢迎程序会话和用户会话都放在 VT1 上,因为我们必须首先启动用户会话,然后拆除欢迎程序会话,并且当同一个 VT 上同时有两个 X 服务器时,我们不能处于那个中间状态。

我刚刚忘记了保留两个 gnome-shell 实例的资源问题。我会和 Ray 聊聊,看看我们是否想拆除欢迎会话,然后根据需要启动它以进行用户切换/注销,以节省资源。

相关内容