gpt4 book ai didi

linux - 在 jupyter notebook 终端上运行 GUI 应用程序 (DISPLAY) - Linux

转载 作者:太空宇宙 更新时间:2023-11-04 11:51:08 45 4
gpt4 key购买 nike

我们在 Ubuntu 服务器上运行 jupyter notebook,并使用 jupyter 的终端功能。这对于运行 CLI 很有用,但是当我们必须运行基于 GUI 的应用程序(例如 xclock)时,它会显示无法打开显示。

如果我们通过 pytty session 、从 windows jumpserver 和设置 DISPLAY 变量运行相同的 GUI 命令,那么它工作正常(即 GUI 应用程序正确显示)

(base) sandeep:/data$ xclock
Error: Can't open display:

理想情况下,如果我们设置正确的 DISPLAY 环境变量,它应该运行。但是,在 jupyter notebook 终端的情况下,DISPLAY 的正确值应该是多少,有人可以建议一下吗。

最佳答案

场景:在您的本地计算机上,您想要打开和操作在远程计算机上运行的瞻博网络笔记本。我们将通过打开 SSH 隧道来完成此操作。此隧道会将远程运行的 Jupyter 实例使用的端口转发到本地计算机上的端口,在本地计算机上可以像访问本地运行的 Jupyter 实例一样在浏览器中访问它。

在远程机器上,启动 Jupyter notebooks 服务器:

remote_user@remote_host$ Jupyter notebook --no-browser --port=8889

通常 Jupyter 会打开一个浏览器来显示可用的笔记本,但我们不需要它,所以我们使用选项 --no-browser。我们还将端口更改为 8889,只是为了展示这是如何完成的。

在本地机器上,启动 SSH 隧道:

local_user@local_host$ ssh -N -f -L localhost:8888:localhost:8889 remote_user@remote_host

第一个选项-N告诉SSH不会执行任何远程命令,对端口转发很有用。第二个选项 -f 的效果是 SSH 将进入后台,因此本地启用隧道的终端仍然可用。最后一个选项-L列出端口转发配置(远程端口8889到本地端口8888)。

现在在本地机器上打开浏览器并在地址栏中输入

localhost:8888

它显示您远程运行的 Jupyter 笔记本服务器。

要关闭本地机器上的 SSH 隧道,查找进程并手动终止它:

local_user@local_host$ ps aux | grep localhost:8889
local_user 18418 0.0 0.0 41488 684 ? Ss 17:27 0:00 ssh -N -f -L localhost:8888:localhost:8889 remote_user@remote_host
local_user 18424 0.0 0.0 11572 932 pts/6 S+ 17:27 0:00 grep localhost:8889
local_user@local_host$ kill -15 18418

或者,您可以在不使用 -f 选项的情况下启动隧道。然后该进程将保留在前台,可以使用 ctrl-c 终止。

在远程机器上,使用 ctrl-c ctrl-c 杀死 Jupyter 服务器。

关于linux - 在 jupyter notebook 终端上运行 GUI 应用程序 (DISPLAY) - Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56042759/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com