如何从python应用程序确定是否正在运行X服务器/ X转发?

我正在编写一个使用PyQt4进行GUI的linux应用程序,它只在远程会话期间使用(ssh -XY / vnc).

因此,有时可能会发生用户忘记使用X转发参数运行ssh或由于某种原因X转发将无法使用的情况.在这种情况下,应用程序崩溃严重(不幸的是,我强行使用包装到python中的旧C库,如果应用程序崩溃,它会完全混淆用户的当前会话).

我不能使用其他东西所以我的想法是在加载该库之前检查X转发是否可用.但是我不知道该怎么做.

我通常使用xclock检查我的会话是否启用了X转发,但使用xclock听起来像一个大的解决方法.

添加
如果可能的话,我想使用另一种方法,而不是创建一个空的PyQt窗口并捕获异常.

检查是否设置了$DISPLAY环境变量 – 如果它们没有使用ssh -X,它将为空(而不是包含类似localhost:10的内容).
翻译自:https://stackoverflow.com/questions/12122671/how-to-determine-from-a-python-application-if-x-server-x-forwarding-is-running

转载注明原文:如何从python应用程序确定是否正在运行X服务器/ X转发?