运行startx并返回中断后切换到另一个TTY


8

我一直对Xorg的特质感到好奇,这种特质似乎发生在我尝试过的每台机器上。每当我使用startx手动在TTY上启动新的X实例时(也就是说,无需显示管理器的帮助),切换到另一个TTY,然后尝试返回到我的原始TTY,X的帧缓冲就会中断,并且我会下降到我原来的X外壳仍在运行。命中^ C或^ D 停止X,但是我不得不再次运行startx / xinit,失去了原来的会话。即:

CTRL+ALT+F1
$ startx /usr/bin/xterm -- :1
CTRL+ALT+F7
CTRL+ALT+F1

会破坏我在TTY1上的X缓冲区。似乎依赖Wayland / Mir进行合成的应用程序可以像我期望的那样处理TTY切换,但是对于使用X的应用程序不是由LightDM等显示管理器启动的应用程序,无法返回我手动启动的X会话是一个真正的痛苦。有什么办法可以解决此问题,以便在切换TTY时可以切换回X会话?


我不明白 tty1上没有X。ctrl-alt-f7也是tty7,在大多数情况下,它运行X服务器。您需要编辑帖子以使其更加清晰。如果您使用的是12.04,请确保您也没有使用Wayland / Mir。甚至不在15.04中。
solsTiCe 2015年

@solsTiCe在TTY1上没有X会话,直到我运行startx在TTY1上创建一个...
joshumax 2015年

@solsTiCe恐怕我在我的问题中看不出模棱两可,您能否详细说明不清楚的地方?
joshumax

1
@solsTiCe我当然不是,我只是问您在我的问题中发现哪些不清楚的地方,以便我可以解决?
joshumax

Answers:


2

嗯,解决方案相对简单,而不是运行

$ startx /usr/bin/xterm -- :1

跑步

$ startx /usr/bin/xterm -- :1 vt$(tty | sed -e "s:/dev/tty::")

切换TTY时将防止X断开。


......这表明它没有真正的“破发”,只是结束了一个不同的虚拟终端上,在第一个可用的虚拟终端,本来可以从任何已经tty2tty63从你的系统是如何发生的,当涉及到虚拟被配置为根据终端使用情况。当然tty1是不可用的,因为当时您正在运行一个登录外壳。
JdeBP

@JdeBP我和Xorg的人讨论了这个问题,它似乎与自动选择可用的终端完全没有关系,但是通过将虚拟终端参数传递给startx,startx会将X置于“持久状态”。 “(因为默认情况下启动startx的,如果它是可用的,并立即当前VT的非持久性的X会话,如果它不能这样做会失败。
joshumax

-1我认为还有另一种方法可以顺利完成此操作。我认为这不是您要做的方式。
莱奥列奥波尔德赫兹준 영

1
@Masi也许您想解释为什么您认为此方法不好,并说明实现该方法的更好方法?这比这种歧义要偶然得多。
赛斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.