这种情况经常发生在我在同一台计算机上登录多个 X 会话时,例如在本地(:0.0
)和通过 RDP 远程登录。
如果桌面应用程序(例如 Chrome 浏览器,我怀疑它通常是 GTK)打开一个对话框窗口,例如保存文件,该对话框窗口通常会出现在另一个 X 会话中。目前显然很难访问。然后应用程序似乎被冻结,直到另一个 X 会话处理该对话框。
更糟糕的是,有时对话框似乎在无法再访问的 X 会话(例如已关闭的 RDP 会话)上“打开”。然后根本无法访问它,唯一的解决方案是强制终止该应用程序。
因此,我正在寻找方法:
- 调试问题——为什么它首先会发生。
- 防止它的发生。
(如果可能的话,另一个可能的解决方案/解决方法是完全避免创建多个会话(是否可以将 xrdp 服务器配置为连接到现有的桌面会话?)。)
我怀疑这可能与 systemd 登录会话以某种方式卡住有关(然后可能会导致一些麻烦dbus
):
$ loginctl list-sessions
SESSION UID USER SEAT TTY STATE IDLE SINCE
3602 2001 user - - closing no -
c11 2001 user - - closing no -
c7 2001 p seat0 tty7 closing no -
...
随后行为不当
这可能是由于同一用户的所有 systemd 会话共享单个 dbus。请参阅xrdp wiki: