如何以编程方式测试是否可以连接到 $DISPLAY 中指定的 X 服务器

Ken*_*ric 10 linux xorg testing x11

这是编程和服务器管理员之间的一个中间地带,但这似乎最终是最相关的地方。

我正在寻找一种方法来确定变量 ' $DISPLAY' 是否正在宣传我们可以实际连接到的 XServer,也就是说,是否所有身份验证等都已到位以允许执行进一步的操作。

理想情况下,我正在寻找返回 true/false 的 shell 端工具,可以在构建脚本中使用它来确定是否应该运行其中的其他测试(我无法控制)。

目前的测试只是检查env变量“ $DISPLAY”,如果它存在,将尝试连接,当连接不起作用时,测试假设测试失败,而不仅仅是显示器无法连接。

我只需要能够做到

if [[ ! can_connect_to_X ]] ; then 
    unset DISPLAY
fi
Run Code Online (Sandbox Code Playgroud)

为了阻止这些测试有严重的精神问题。

在理想情况下,执行此操作所需的工具应该与 X 客户端库本身一起提供,以免产生特殊的依赖关系,并且能够假设如果该实用程序不存在,我们将无法连接到任何显示器。

slu*_*man 8

您可以尝试使用 xset 命令:

if [[ ! $(xset -q) ]]; then
   # the X server is not reachable
else
   # the X server is reachable
fi
Run Code Online (Sandbox Code Playgroud)