美文网首页
Mac使用VSCode远程调试Linux服务器的可视化输出

Mac使用VSCode远程调试Linux服务器的可视化输出

作者: 于心叶的叶 | 来源:发表于2020-01-12 11:08 被阅读0次

    好久不见~
    废话不多说,上教程。


    在做 数据分析(数据挖掘 或 机器学习)的时候,我们经常需要绘制一些统计相关的图表,这些统计、绘图的程序常常是跑在服务器上的,可是服务器出于性能和效率的考虑,通常都是没有安装图形化界面的,于是这些统计、绘图的程序在服务器上压根儿就跑不起来,或者无法直接显示出来,这就很尴尬了!
    Linux 本身是没有图形化界面的,所谓的图形化界面系统只不过中 Linux 下的应用程序。这一点和 Windows 不一样。Windows 从 Windows 95 开始,图形界面就直接在系统内核中实现了,是操作系统不可或缺的一部分。Linux 的图形化界面,底层都是基于 X 协议。

    假设我在使用VSCode的remote-ssh,并成功连接上了远程服务器,现在需要在调试代码的时候显示图形化界面。例如Python的opencv或者matplotlib的图形输出。

    Mac 现在不提供X11 需要安装Xquartz,在https://www.xquartz.org/下载适合Mac的最新版安装包(其实不是很新了)。

    首先,我们编辑服务器端的设置,使其能够X11转发:
    编辑/etc/ssh/sshd_config文件中找到如下两个参数,设置为yes10

    X11Forwarding yes
    X11DisplayOffset 10
    

    更改后需要重启服务, Linux运行如下命令重新启动ssh服务。

    service ssh restart 
    

    然后,我们编辑Mac上的配置,编辑/private/etc/ssh/ssh_config文件(可使用vi),设置如下参数为yes

    ForwardX11 yes
    

    最后,使用安装了remote-ssh插件的VSCode,登录远程服务器,记得要在命令后加-X选项。


    跑一个带有图形输入的代码试试看~

    不过,matplotlib输出的模块,上面的保存按钮,还是只能保存在了服务器中,可以使用ssh配合scp传输到本地。

    当然,配好了X11的转发,其实我们可以做很多事情,例如在远程登录后终端里输入任意一个linux的GUI软件的命令:


    参考:

    1. MAC运行远程Linux服务器图形界面应用 - 简书
    2. 远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X11 Forwarding + Centos + MobaXterm) - 简书

    相关文章

      网友评论

          本文标题:Mac使用VSCode远程调试Linux服务器的可视化输出

          本文链接:https://www.haomeiwen.com/subject/stiaaxtx.html