我有一个OpenGL程序无法在VNC会话中正确运行。为了在VNC会话中远程启动它,我需要通过 vglrun 运行它。
我已经有一个启动二进制文件的包装器脚本,但是我需要一种可靠的方法来检测是否应该通过 vglrun 运行它或者按原样运行应用程序。
我目前正在使用thinlinc,它似乎修改了LD_LIBRARY_PATH,PATH和其他几个环境变量。最糟糕的情况是,我可以检查一下是否存在thinlinc,但我希望可能有更通用的方法来检测你是否在VNC会话中运行。
答案 0 :(得分:2)
您可以使用标准的Unix命令xdpyinfo
来获取有关显示的信息。
事实上,在 VNC (至少在 Real VNC 下),它会在可用扩展名列表中报告字符串VNC-EXTENSION
,例如:
$ xdpyinfo
name of display: CTNLL021:13.0
version number: 11.0
vendor string: The X.Org Foundation
vendor release number: 60900000
X.Org version: 6.9.0
. . .
number of extensions: 29
. . .
GLX
VNC-EXTENSION
X-Resource
. . .
因此,如果您使用以下命令在 VNC 下,则可以轻松测试:
xdpyinfo | grep VNC
然后检查其退出代码。
如果需要,您还可以指定您感兴趣的显示器,例如:
xdpyinfo -display myhost:22:0 | grep VNC