再起動時にjupyterlabを自動起動させるservice, systemctl設定

今回はjupyterlabを再起動時に自動起動するserviceの設定について書いていきます。

私の環境はjetson上でOSはubuntu 18.04なのでパスなどは環境によって変わるかもしれないです。

jupyterlabのインストール


pip install jupyterlab

jupyterlabを起動させるスクリプト


以下のようなファイル(jupyter.service)を/etc/systemd/system配下に作成します。

作業ディレクトリはどこのディレクトリ上で実行したいかを設定します。

jupyterのコマンド先はwhich jupyterとかで出てきたパスを直接指定します。

注意が必要なのはユーザー名です。

環境によってですが、pip installされたパッケージはユーザーごとに分かれています。

私の環境では/home/<ユーザー名>/.local/lib/python<バージョン名>/site-packagesでした。pip show <パッケージ名> コマンドで表示されるLocationがパッケージのあるパスです。

普段使ってるユーザー以外を指定するとパッケージ管理のパスが違うのでNoModuleFoundErrorが出てきたりするので適切なユーザー名を指定しましょう。

[Unit]
Description=Jupyterlab

[Service]
Type=simple
WorkingDirectory=<作業ディレクトリ>
ExecStart=<Jupyterコマンド先> lab --ip=* --port=<ポート番号> --allow-root --NotebookApp.token=<パスワード> --no-browser
Restart=always
StartLimitBurst=5
StartLimitIntervalSec=10
User=<ユーザー名>
Group=root

[Install]
WantedBy=multi-user.target

Restart=alwaysを指定することで異常・正常にかかわらず再起動を試みます。

StartLimitBurstは再起動を実施する回数の上限、StartLimitIntervalSecは再起動のインターバルの秒数です。

ここら辺の細かい設定は参考ページを見てみてください。

起動できるか確認


以下の上2つのコマンドでjupyterを起動してみましょう。

systemctl statusで起動状況を確認してactiveになっていたら成功です。

念のために実際にページ表示もしといた方がいいでしょう。

# 設定ファイル再読み込み
systemctl daemon-reload
# サービス起動
systemctl start jupyter.service

# 起動状況確認
systemctl status jupyter.service

再起動時に自動起動させる設定


以下のコマンドで再起動時に自動起動するよう設定できます。

環境によってはsudoつける必要があるかも。

systemctl enable jupyterlab.service

参考ページ


https://www.freedesktop.org/software/systemd/man/systemd.service.html

コメントを残す

メールアドレスが公開されることはありません。