Linux 如何处理DISPLAY=:0.0
我的X程序有时必须从控制台启动,但默认情况下,在Ubuntu上未设置DISPLAY env var。在启动脚本中包含DISPLAY=:0.0 startmyapp是否正确,或者如何处理它?谁、何时以及如何负责正确设置此显示变量?为什么在安装X或包含X的桌面后,环境还没有准备就绪?显示变量控制应用程序与之通信的X会话。在任何给定的时刻,都可能有许多或没有这些可用。您不能只是静态地设置此值,并使其必须正确 它在环境中的X会话中设置正确,您可以在该会话之外手动设置以使用同一会话,但您必须知道要使用哪个会话Linux 如何处理DISPLAY=:0.0,linux,bash,shell,configuration,x11,Linux,Bash,Shell,Configuration,X11,我的X程序有时必须从控制台启动,但默认情况下,在Ubuntu上未设置DISPLAY env var。在启动脚本中包含DISPLAY=:0.0 startmyapp是否正确,或者如何处理它?谁、何时以及如何负责正确设置此显示变量?为什么在安装X或包含X的桌面后,环境还没有准备就绪?显示变量控制应用程序与之通信的X会话。在任何给定的时刻,都可能有许多或没有这些可用。您不能只是静态地设置此值,并使其必须正确 它在环境中的X会话中设置正确,您可以在该会话之外手动设置以使用同一会话,但您必须知道要使用哪个
如果您知道该会话将始终是您的会话,并且您知道该会话将始终是您想要使用的会话,那么可以在服务启动脚本中设置它。否则,您需要找到其他方法来确定您需要的显示值。shell不能假定您的显示始终是localhost:0.0,这就是:0.0的含义,因为您的实际显示可能在其他位置,甚至在另一个IP地址上。您可以在流程开始时将$DISPLAY的定义放在某个位置,但您可能希望检查$DISPLAY是否尚未定义。