多台显示器挂起后无法登录

Ian*_*non 8 multiple-monitors suspend lightdm 16.04

由于我将外接显示器连接到我的笔记本电脑,因此在从挂起状态恢复时无法再登录。LightDM 出现在两个屏幕上,并在登录框中显示我的名字,但密码字段不可见,无论如何输入密码都不起作用。

机器仍在运行,我可以通过 SSH 或替代 shell(带有ctrl-alt功能键)访问它,但我无法回到之前的 Unity 会话。

注销并再次登录而不暂停工作正常。

笔记本电脑是戴尔 Precision M6700,配备 nVidia Quadro K4000M,外接显示器通过 DisplayPort 1.2 连接。操作系统是 Ubuntu 16.04,最新的 nVidia 驱动程序和 Nouveau 显示驱动程序都会出现问题。

我能做些什么来修复 LightDM?

Dan*_*iel 2

这是一种解决方法,它使用了 Malith 答案中的想法,但自动执行了几个步骤,让我知道它是否适合您,如果不适合您,我有一些其他可能有用的想法。

创建一个名为 的文件/etc/systemd/system/suspend-workaround.service,其中包含以下内容:

[Unit]
Description=suspend lightdm workaround
Before=sleep.target
StopWhenUnneeded=yes

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/chvt 1
ExecStop=/bin/chvt 7

[Install]
WantedBy=sleep.target
Run Code Online (Sandbox Code Playgroud)

在终端上键入以下内容以重新加载 systemd 文件并启用上面的单元:

sudo systemctl enable suspend-workaround.service
sudo systemctl daemon-reload
Run Code Online (Sandbox Code Playgroud)

尝试暂停并报告您的结果。

编辑:如果上述内容解锁了您的会话(不应该),您可以通过将 替换为 来使会话锁定恢复ExecStop=/bin/chvt 7ExecStop=/bin/chvt 7 ; /bin/loginctl lock-sessions

/bin/loginctl lock-sessions您还可以禁用系统设置上的会话锁定,并通过调用并保留所有内容,使用像上面这样的 systemd 脚本强制它锁定恢复后chvt