Jupyter Hub (Single-User-Modus) mit systemd für Autostart betreiben

English Deutsch

Hinweis: Dies erlaubt nur einem einzelnen (vorkonfigurierten) Benutzer, sich bei Jupyter Lab anzumelden! Siehe Jupyter Hub (Multi-User-Modus) mit systemd betreiben für die Bereitstellung von Jupyter Hub im Multi-User-Modus mit systemd, der jedem Unix-Benutzer die Anmeldung erlaubt!

Das folgende Skript installiert Jupyter Hub im Single-User-Modus (d.h. nur ein einzelner Linux-Benutzer kann sich über die Weboberfläche bei Jupyter Hub anmelden).

Voraussetzungen

Zuerst Python & PIP installieren, dann NodeJS, dann Jupyter Hub, dann configurable-http-proxy:

install_jupyterhub_prereq.sh
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs python3-pip
pip install -U jupyterhub
sudo npm i -g configurable-http-proxy

Jupyter-Hub-systemd-Dienst installieren

Das folgende Skript als der Benutzer ausführen, der sich anmelden können soll! Das Skript nicht mit sudo ausführen!

install_jupyterhub_service.sh
#!/bin/bash
# This script installs and enables/starts a systemd service
export NAME=JupyterHub-$USER
export GROUP=$(id -gn $USER)
# Create service file
sudo tee /etc/systemd/system/${NAME}.service <<EOF
[Unit]
Description=${NAME}

[Service]
Type=simple
ExecStart=/usr/bin/env jupyterhub

WorkingDirectory=$HOME
User=$USER
Group=$GROUP

Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target
EOF

# Enable and start service
systemctl enable --now ${NAME}

Dieses Skript installiert einen systemd-Dienst namens JupyterHub-$USER (wobei $USER der aktuelle Benutzer ist, z.B. uli) und startet diesen automatisch beim Booten.

Mehrere Dienste betreiben

Wenn mehrere Dienste betrieben werden, kann das Skript für jeden Benutzer ausgeführt und ein eindeutiger Port für jeden Dienst durch Hinzufügen von --port=7219 zum /usr/bin/env jupyter hub-Befehl gewählt werden, z.B.

jupyterhub_exec_example.txt
ExecStart=/usr/bin/env jupyterhub --port=7192

Alternativ kann ein einzelner systemweiter Jupyter Hub im Multi-User-Modus betrieben werden, bei dem sich mehrere Benutzer anmelden können.


Check out similar posts by category: Python, Systemd