随时随地访问jupyter,畅享加班生活。

1.准备

  • 一台服务器

2.在服务器上开启服务

这个网上教程太多了,就不讲了

正常开启是这样的

image-20231202011936041

可以看到它开在了本地

3.查看配置文件地址

写完了看别人博客的时候才发现根本不用这么麻烦

直接

1
jupyter notebook --no-browser --ip 0.0.0.0

就可以把jupyter开在服务器上

直接就可以跳过3、4、5步

在控制台输入

1
jupyter notebook –generate-config

如果是首次输入会在默认目录下生成jupyter的配置文件

如果已经有配置文件了就会询问是否覆盖,同时也会显示出文件的地址

image-20231202012608960

4.编辑配置文件

1
vim /root/.jupyter/jupyter_notebook_config.py

查找c.NotebookApp.ip

image-20231202012818266

把前面的注释去掉,然后改为

1
c.NotebookApp.ip = '0.0.0.0'

保存退出

5.启动jupyter

image-20231202013114450

可以看到这里已经变成了主机名

这时候去防火墙放行端口就可以在服务器上访问jupyter了

image-20231202013403333

记得带上token

6.配置systemd

本来这步是没啥必要的

但是自己就是又菜又爱玩,想去试试能不能开这个服务,然后花了好几个小时去倒腾systemd奇怪的环境配置(主要还是被conda被刺了)

最后还是选择直接找到conda环境里的python,然后用绝对路径启动

没用conda的话可以参考:

搭建 Jupyter Notebook 服务(基于 Systemd 和 Nginx) - 循环展开 - 博客园 (cnblogs.com)

如果装了conda,具体步骤如下:

  1. 先确认自己用的conda的环境,如果是base环境python的位置和其他环境的不太一样

  2. 找到conda的位置

    这里可以用

    1
    whereis conda

    image-20231202030750685

    (这里用第一个路径)

  3. 找到python的位置

    一般base环境的python和conda一样在bin下面

    在图上就是/root/anaconda3/bin/python这个位置

    [conda的安装位置]/bin/python

如果是其他的环境就在anaconda3下的envs里

我这只新建了一个环境所以只有一个文件夹

image-20231202031241763

到环境文件夹下的bin里就能看到python程序

在图上就是/root/anaconda3/envs/idsgame/bin/python

[conda的安装位置]/envs/[环境名]/bin/python

  1. 创建systemd任务

    1
    vim /etc/systemd/system/jupyter.service

    向里面写入:([ ]中的内容根据自己的实际情况进行替换!!!)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [Unit]
    Description = jupyter server
    After = network.target syslog.target
    Wants = network.target

    [Service]
    Type = simple
    WorkingDirectory=[jupyter开启的根目录]
    ExecStart=[python的位置] -m jupyter notebook --allow-root
    Restart=always

    [Install]
    WantedBy = multi-user.target
  2. 启动服务

    1
    systemctl start jupyter
  3. 查看状态

    1
    systemctl status jupyter

    image-20231202032141589

    绿了就成功了,然后可以从里面看到登录用的token值