我正在尝试通过 ssh -Y 和 tmux 在服务器 (Ubuntu 14.04.5 LTS) 上运行几个计算密集型 python 脚本。只要我不关闭 ssh 连接,这就可以正常工作。如果我关闭连接,当前正在运行的脚本将正常完成,但之后启动的所有脚本都会出现错误
gtk-警告**:无法打开显示:localhost:10.0
这些脚本是命令行专用的,但可能出于某种原因使用的库需要显示。如果我断开连接,显示就会消失(我的假设)。有没有办法解决这个问题(最好没有 root 访问权限),也许有办法欺骗 ubuntu 认为有显示,而实际上没有?
编辑:
- 我首先连接到 vpn,然后通过 ssh 进入服务器(使用 -Y 标志)
- 我正在努力奔跑这个脚本每次循环使用不同的参数。它使用
matplotlib.use('Agg')
matplotlib,所以不应该是问题 (?) 我想不出其他问题了。 echo $DISPLAY
localhost:10.0
在错误之前返回。如果我从另一台计算机连接,它会返回localhost:13.0
。如果我让原始计算机上的终端保持打开状态,它仍会返回,localhost:10.0
但是如果我打开一台新计算机,它现在也会返回localhost:13.0
- X11-Forwarding 工作正常,我可以运行迄今为止尝试过的任何桌面应用程序。问题是断开连接/注销后启动的脚本。
答案1
尝试设置 DISPLAY 变量:
export DISPLAY=localhost:10.0
然后执行你的命令。