我正在编写一个linux应用程序,它使用PyQt4作为GUI,并且只在远程会话期间使用该应用程序
(ssh-XY/vnc)。在
由于某些原因,ssh可能会因为某些原因而忘记使用em>转发。在这种情况下,应用程序崩溃得很厉害(不幸的是我不得不使用一个旧的C++库,它被包装到Python中,如果应用程序崩溃,它会完全破坏用户当前的会话)。在
我不能使用其他东西,所以我的想法是在加载库之前检查X转发是否可用。但是我不知道怎么做。在
我通常使用xclock检查会话是否启用了X转发,但是使用xclock听起来像是一个大的解决方案。在
已添加
如果可能的话,我希望使用另一种方法,而不是创建一个空的PyQt窗口并捕捉异常。在
检查是否设置了
$DISPLAY
环境变量-如果他们没有使用ssh -X
,那么它将是空的(而不是包含类似localhost:10
)的内容。在与您的xclock解决方案类似,我喜欢运行xdpyinfo并查看它是否返回错误。在
如前所述,可以检查DISPLAY环境变量:
如果您愿意,您可以实际连接到显示端口以查看sshd正在监听它:
^{pr2}$这依赖于使用端口6000+显示号的标准X配置。在
相关问题 更多 >
编程相关推荐