防止 Xorg 在更改 tty 时挂起

防止 Xorg 在更改 tty 时挂起

我在两个不同的终端上运行两个应用程序。假设应用程序 A 在 ttyA 上运行,应用程序 B 在 ttyB 上运行。如果我从 ttyA 切换到 ttyB,我会收到以下消息

x-daemon[544]: (II) AIGLX: Suspending AIGLX clients for VT switch

因此 ttyA 上的应用程序 A(显然是 Xorg 应用程序)不再更新。这最终导致我的系统由于某种内存泄漏而冻结,因为应用程序 A 中的缓冲区不再交换。

问:当X服务器不在活动tty中时,是否可以保持刷新X?

我尝试启动 Xorg-novtswitch但没有成功。

答案1

Xorg 控制 GPU。如果另一个 tty 控制了显示器,Xorg 必须释放 GPU。使用 GPU 硬件加速的应用程序(日志中提到的 AIGLX 客户端)被挂起,因为 GPU 无法在不同的 tty 或多个 X 服务器之间共享。

您可以在没有硬件加速的情况下运行 Xorg,比较:如何在Linux中禁用硬件加速?


单个应用程序的一种可能性是不受信任的 cookie:

您可以使用不受信任的 cookie 禁止应用程序访问 GPU。示例: xauth -f $HOME/mycookie 生成 。不受信任的 XAUTHORITY=$HOME/mycookie glxgears glxgears 将无法启动,因为它没有 GPU 访问权限。使用可信而不是不可信允许 GPU 访问,并且 glxgears 可以工作。

(从https://security.stackexchange.com/a/161342/132289

相关内容