VSCodeのRemote SSHでJupyter Notebookを動かしていると、サーバー側が元気でもこちらの画面を閉じるとカーネルが死んでまう。それを防ぐ。
TL;DR
-
- Remote SSHでSSH接続する
-
- (Optional) pip, conda等でenvに入る
-
- (Optional) Jupyterのサーバーがない場合は立てる
-
- Jupyter Connectionを選択
-
- カーネルを選択
- 安心して寝落ちる
説明
クライアント側
macOS Monterey, VSCode 1.74.2
サーバー側
Ubuntu, 22.04 LTS
1. Remote SSHでSSH接続する
VSCodeの拡張機能Remote SSHを使う。
2. (Optional) pip, conda等でenvに入る
カーネルのenvになる。
3. (Optional) Jupyterのサーバーがない場合は立てる
UNIX系なら、端末を閉じてもログアウトしても処理を続けるnohupコマンドを使う。
$ nohup jupyter notebook &
nohup.outというファイルができているので、そのファイルの一番下のURLをコピーする。
To access the notebook, open this file in a browser:
file:///home/hogehoge
Or copy and paste one of these URLs:
http://localhost:8871/?token=hogehoge ## <-これをコピー
or http://127.0.0.1:8871/?token=hogehoge ## <-これでも良い
nohupその他
jobsで現在処理中のプロセスが表示できる。
$ jobs
[1] + running nohup jupyter notebook
fg id(zshならfg %id)でジョブをフォアグラウンドに持ってこれる。ジョブを切りたい場合はフォアグラウンドにしてから^C。
$ fg %1
[1] + 905549 running nohup jupyter notebook
^C
4. Jupyter Connection
5. カーネルを選択
ここで、私の場合はJupyter Sessionが表示されない場合が多かった。Notebookを開きなおすとJupyter Kernelの方は表示された(Jupyter Sessionは表示されない)ので、Jupyter Kernelを選択してから一度適当なセルを実行し、もう一度見にいくとJupyter Sessionが追加されていた。