linux:检测您是否 运行 在 vnc 会话中
linux: detecting if you're running in a vnc session
我有一个 OpenGL 程序在 VNC 会话中无法 运行 正确。为了在 VNC 会话中远程启动它,我需要通过 vgl运行.
运行 它
我已经有一个启动二进制文件的包装脚本,但我需要一种可靠的方法来检测我是否应该通过 vgl运行 运行 它或按原样 运行 应用。
我目前正在使用 thinlinc,它似乎可以修改 LD_LIBRARY_PATH、PATH 和其他几个环境变量。所以最坏的情况我可以检查那里是否存在 thinlinc,但我希望可能有一种更通用的方法来检测你是否在 VNC 会话中 运行ning。
您可以使用标准 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
我有一个 OpenGL 程序在 VNC 会话中无法 运行 正确。为了在 VNC 会话中远程启动它,我需要通过 vgl运行.
运行 它我已经有一个启动二进制文件的包装脚本,但我需要一种可靠的方法来检测我是否应该通过 vgl运行 运行 它或按原样 运行 应用。
我目前正在使用 thinlinc,它似乎可以修改 LD_LIBRARY_PATH、PATH 和其他几个环境变量。所以最坏的情况我可以检查那里是否存在 thinlinc,但我希望可能有一种更通用的方法来检测你是否在 VNC 会话中 运行ning。
您可以使用标准 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