Zenn
💡

JupyterHubとsystemd(サービス化)備忘録:仮想環境問題について

2025/03/26に公開

JupyterHubとsystemd(サービス化)備忘録:仮想環境問題について

問題

  • systemdからJupyterHub起動
  • conda環境が認識されない
  • conda activateが効かない

原因

systemdで起動するとconda環境変数が引き継がれない仕様。

解決手順

1. 起動スクリプト作成

# ファイル作成
sudo vi /usr/local/bin/start_jupyterhub.sh

# 内容
#!/bin/bash
source /usr/local/anaconda3/etc/profile.d/conda.sh
conda activate myenv
exec jupyterhub -f /etc/jupyterhub/jupyterhub_config.py

# 権限付与
sudo chmod +x /usr/local/bin/start_jupyterhub.sh

2. systemdユニットファイル作成

# ファイル作成
sudo vi /etc/systemd/system/jupyterhub.service

# 内容
[Unit]
Description=JupyterHub Service
After=network.target

[Service]
Type=simple
User=root
Environment="PATH=/usr/local/anaconda3/envs/myenv/bin:/usr/local/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
ExecStart=/usr/local/bin/start_jupyterhub.sh
Restart=always
RestartSec=10s

[Install]
WantedBy=multi-user.target

3. 設定反映と起動

sudo systemctl daemon-reload
sudo systemctl reset-failed jupyterhub
sudo systemctl start jupyterhub
sudo systemctl status jupyterhub

4. エラー確認方法

sudo journalctl -u jupyterhub --no-pager | tail -n 50

メモ

  • PATH設定が肝心
  • sourceコマンドでconda.shを読み込むことが重要
  • 仮想環境名は自分の環境に合わせて変更(myenv)
  • 動かなかったら最初にログ確認

自動起動設定したい場合:

sudo systemctl enable jupyterhub

Discussion

ログインするとコメントできます