我在远程计算机(我将其插入)中运行Python代码,然后使用Tmux。在我断开与远程计算机的连接之前,代码运行良好。我通过Tmux进行连接的重点是即使我没有连接到远程计算机,代码也可以继续运行。稍后重新连接时,出现错误消息:
: cannot connect to X server localhost:11.0
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么会这样或我如何阻止它?
cannot connect to X server localhost:11.0
Run Code Online (Sandbox Code Playgroud)
...意味着您的代码正在尝试(并且失败)连接到X服务器(GUI环境),大概是通过您的SSH会话转发的。tmux
为终端应用程序提供会话连续性;它不能模拟X服务器。
如果要停止它完全不能建立任何GUI连接(也许,如果这样编写了软件,甚至可以尝试),请DISPLAY
在运行代码之前取消设置环境变量。
如果这导致错误或异常,则生成的代码与导致您以后发生错误的代码相同。
如果要创建仍然存在的伪造 GUI环境,也可以使用Xvfb进行。
一些Linux发行版提供了xvfb-run
包装器,可以自动为您设置:
# prevent any future commands in this session from connecting to your real X environment
unset DISPLAY XAUTHORITY
# run yourcode.py with a fake X environment provided by xvfb-run
xvfb-run python yourcode.py
Run Code Online (Sandbox Code Playgroud)
顺便说一句,当并行调用多个实例时,请参见xvfb运行不可靠的问题,以获取有关xvfb运行中存在的错误的注释,以及针对该问题的修复程序。
如果要使用X服务器,您实际上可以从中分离并重新连接到以后,让您运行具有与tmux为终端应用程序提供的功能相似的功能的GUI应用程序,请考虑使用X11vnc或类似的工具。
归档时间: |
|
查看次数: |
12830 次 |
最近记录: |