💡
JupyterHubとsystemd(サービス化)備忘録:仮想環境問題について
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