为什么注销虚拟控制台会导致桌面 GUI 崩溃?

为什么注销虚拟控制台会导致桌面 GUI 崩溃?

仿生海狸,18.04。

今天发生了一件有趣的事。我的系统运行良好,启动到桌面 - 正常运行时间约 80 天,桌面上打开了许多窗口。一切都很好,直到... GUI 在 tty1 上运行(如预期的那样)。

在尝试调试另一个问题时,我决定从桌面 GUI 切换到虚拟控制台并登录。因此,我执行“sudo chvt 2”并在 tty2 上进入登录提示。到目前为止一切顺利。我以自己的身份登录(在 tty2 上),执行一些操作,然后注销(通过 ^D) - 希望回到登录提示,然后我可以从那里切换回我的 GUI 桌面会话。

然而,接下来发生的事情是,我看到了一个纯紫色的屏幕,大约 10 秒钟后,一个 GUI 屏幕要求我输入密码。我登录后,看到一个干净、崭新的桌面。之前出现的所有窗口都消失了(这意味着,我必须弄清楚之前出现过什么,然后重新启动一切)。

看起来好像以某种方式注销 tty2 向 GUI 桌面上运行的所有进程(包括桌面本身)发送了挂断信号,迫使您再次登录并重新启动之前运行的任何程序。

为什么会发生这种情况?

一些附加信息:

  1. 桌面重新启动后 - 在我运行脚本打开常用窗口(程序)后 - 我发现 tty1 上有许多进程在运行,以用户“gdm”的身份运行,tty3 上也有许多进程在运行,以用户“me”的身份运行。所有这些进程(在 tty1 和 tty3 上)都显示为在桌面重新启动时启动。tty2 上有一个进程(getty)。

  2. /var/crash 中有一个文件,其时间戳为桌面重新启动时的时间,它对应于我的一个进程(即崩溃时我在其中一个终端窗口中运行的进程)。该文件显示它已被信号 6(SIGABRT)终止。SIGABRT 通常由程序未通过 assert(3) 引起。

相关内容