运行 Jupyter-notebook 在 Ubuntu 上启动

Run Jupyter-notebook on boot on Ubuntu

我有一个安装了 anaconda 的 Ubuntu 16.04 虚拟机, 我希望它在启动时使用正确的配置文件(IP 地址、端口、密码...)启动 Jupyter-notebook

此配置在/home/user/.jupyter/jupyter_notebook_config.py

中指定

当我以 user 身份登录并在主目录 (/home/user/) 中时,它会启动正确的配置文件。

但是在使用命令时

jupyter-notebook

在使用 rc.local 或使用 crontab 启动期间,它不会加载我的配置文件,并且没有正确的 运行 目录。

非常相似的问题和答案:How to start ipython notebook server at boot as daemon

您可以将以下行添加到您的 /etc/rc.local 文件

su <username> -c "jupyter notebook --config=/location/of/your/config/file/.jupyter/jupyter_notebook_config.py --no-browser --notebook-dir=/location/of/yournotebooks" &

例如

su simon -c "jupyter notebook --config=/home/simon/.jupyter/jupyter_notebook_config.py --no-browser --notebook-dir=/home/simon/notebooks" &

su <username> -c 确保笔记本不是以 root 身份执行,而是使用指定的用户帐户执行。``

--config--notebook-dir 指定配置文件和笔记本文件夹的位置 (http://jupyter-notebook.readthedocs.io/en/latest/config.html)


对于使用 systemd 的系统(Ubuntu 16 及更高版本),以下方法也适用:

  • /etc/systemd/system/ 中创建服务文件,例如jupyter.service 包含以下内容(将 YourUserName 替换为您的用户名)

    [Unit]
    After=network.service
    
    [Service]
    ExecStart=jupyter notebook
    User=YourUserName
    
    [Install]
    WantedBy=default.target
    
  • 启用服务 sudo systemctl enable jupyter.service

  • sudo systemctl start jupyter.service启动服务

您应该为您的 Jupyter 服务器设置一个密码,因为您将无法访问令牌。

这个对我有用。将其放入您的 /etc/rc.local

sudo -u <username> nohup /home/<username>/.local/bin/jupyter-notebook --ip 0.0.0.0 --port 8888 --no-browser --notebook-dir=/home/<username>/<notebook_dir>&

在我的例子中,/etc/rc.local第一次是不可用的,所以你需要先创建这个。然后,使其可执行。

sudo chmod +x /etc/rc.local

下面是我的rc.local样子的内容。

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

sudo -u my_username nohup /home/my_username/.local/bin/jupyter-notebook --ip 0.0.0.0 --port 8888 --no-browser --notebook-dir=/home/my_username/notebook&

exit 0

就我而言,在 ubuntu 20.04 中,“/etc/rc.local”方式不起作用。我分两步解决了:(1)创建只需双击或输入即可运行的可执行文件; (2) 将执行添加到 gnome 中的启动应用程序。

这里是详细的:

  1. 在你想要的地方创建文件并添加可执行选项。这是在 USER 文件夹中创建文件的一行代码:cd /home/USER & touch jupyterlab.sh & sudo chmod u+x jupyterlab.sh

  2. 将相应的执行脚本添加到文件中。在我的例子中,我是 运行 jupyter-lab(用 which jupyter-lab 定位程序),有一个 ip 和端口,因为我将它用作服务器。

文件内容如下:

#!/bin/bash
/home/USER/anaconda3/bin/jupyter-lab --ip 192.168.1.32 --port 9000 --no-browser & exit
  1. (可选)也通过双击使文件可执行并在 dolphin 中输入 goint 到首选项 ()。

  2. 将文件和 .sh 扩展名添加到启动应用程序。

可能看起来很长,但它的优点是只需点击几下即可获得可以初始化(或不初始化)的可执行文件。