启动第二个 x 会话会使前一个会话崩溃

启动第二个 x 会话会使前一个会话崩溃

我遵循以下指南一台 linux 电脑上的多个桌面开始另一个 X 会话。如果我切换到 VT-3,我可以使用以下命令成功启动新的 X 会话

startx gnome-session -- :1

或者

startx -display :1 -- :1 vt3 &

然而,当我通过按 切换回在 VT-7 上运行的原始 X 会话时 Ctrl+Alt+F7,我发现 X 服务器已崩溃,并且每次我返回到第二个 X 服务器时它都会崩溃。但是,如果我切换到 VT-3 然后返回 VT-7 而不启动第二个 x 会话,我原来的 x 服务器不会崩溃。如果我从 tty3 上的第二个 xserver 切换到另一个 tty(如 tty2),然后按 Ctrl-Alt-F7 返回到原来的 x-server,xserver 不会崩溃。仅当我在 VT-3 中启动第二个 X 会话后从 VT-3 切换到 VT-7 时,才会发生崩溃。

看看Xorg.0.log我发现了这些错误消息

[ 22162.112] (II) event2  - Power Button: device removed
[ 22162.136] (II) event4  - Video Bus: device removed
[ 22162.161] (II) event1  - Sleep Button: device removed
[ 22162.193] (II) event14 - Integrated Camera: Integrated C: device removed
[ 22162.233] (II) event3  - AT Translated Set 2 keyboard: device removed
[ 22162.249] (II) event5  - SynPS/2 Synaptics TouchPad: device removed
[ 22162.281] (II) event6  - ThinkPad Extra Buttons: device removed
[ 22162.313] (II) event15 - py-evdev-uinput: device removed
[ 22162.329] (II) event15 - py-evdev-uinput: device removed
[ 22162.361] (II) AIGLX: Suspending AIGLX clients for VT switch
[ 22175.090] (II) AIGLX: Resuming AIGLX clients after VT switch
[ 22175.091] (EE) modeset(0): drmSetMaster failed: Invalid argument
[ 22175.091] (EE) modeset(0): failed to set mode: Permission denied
[ 22175.091] (EE) 
Fatal server error:
[ 22175.091] (EE) EnterVT failed for screen 0
[ 22175.091] (EE) 
[ 22175.091] (EE) 
Please consult the The X.Org Foundation support 
     at http://wiki.x.org
 for help. 
[ 22175.091] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[ 22175.091] (EE) 
[ 22175.091] (II) AIGLX: Suspending AIGLX clients for VT switch
[ 22175.134] (EE) Server terminated with error (1). Closing log file.

我不确定崩溃的原因是什么或如何修复它。查找此错误消息,大多数人似乎都在谈论图形或 nvidia 驱动程序,但自从安装发行版以来我没有更改驱动程序,而且我没有 nvidia 图形卡。类似的问题发布在问题:切换到第二个 X 会话会杀死第一个 X 会话,但我认为我没有驱动程序问题,因为grep "nouveau" /var/log/syslog没有返回任何内容。

任何帮助深表感谢。

答案1

不幸的是,您所遵循的手册太旧了,并且没有反映现代显示管理器不必支持由 启动的多个会话这一事实startx。例如,LightDM 就是这种情况。支持使用 LightDM 运行新会话的方法是使用以下命令:

dm-tool switch-to-greeter

执行此命令后,VT-7 上的前一个 Xsession 将被锁定,并在 VT-8 上打开一个新的 Xsession,以便其他用户可以登录。使用CTRL- ALT-F7CTRL- ALT-在会话之间切换F8照常工作(此切换不会锁定前一个 Xsession) X 会话)。

我在问题中发布了答案切换到第二个 X 会话会杀死第一个 X 会话你提到这个问题是因为这个问题特别提到了LightDM。

其他显示管理器有自己的方式(GDM 可能使用gdmflexiserver),因此您的解决方案取决于您使用的显示管理器。

如果有必要运行另一个 Xserver(除了已经运行的 Xserver 之外),您可以尝试遵循完整的答案https://askubuntu.com/a/519164/981550(来自问题https://askubuntu.com/questions/518454/what-does-startx-command-do)建议使用Xnest(服务器内的图形服务器)。

相关内容