

私はサーバーマシンのscreen command windowでJupyter notebookを以下のように起動し、ローカルマシンで
リモートで接続してJupyter notebookを使っています。 しかし、2日〜2,3週間かかる計算をJupyter
notebook上で実行した後にsshの接続を切ったあと、再度remoteのscreen windowで動いている、同じJupyter
notebookに接続しても、計算が途中で終わってしまっています。sshが切れてJupyter notebookのウィンドウが落ちてもJupyter
notebookのセルの実行が中断されない方法はありませんでしょうか。 よろしくお願いいたします。

* remoteで
[code]

    screen
    ipython notebook --no-browser --port=8889
    
[/code]

でjupyter notebookを開いたあと  
* localで
[code]

    ssh -N -f -L 8888:localhost:8889 remote_user@remote_host
    
[/code]

でjupyter notebookに接続をしています。 sshを切ったあとは再度

[code]

    ssh -N -f -L 8888:localhost:8889 remote_user@remote_host
    
[/code]

と接続をして計算を実行していたnotebookに戻っています.


CC BY-SA 4.0
2018-07-01T03:19:30.727
45202
2019-07-25T05:19:34.780
2018-07-01T05:58:25.933
3068
29136
question
python ssh jupyter-notebook
リモートのJupyter notebook上で大規模計算を実行し、sshが切れても計算し続けるようにする。


英語版に同じような質問があります。  
[Keep Jupyter notebook running after closing browser
tab](https://stackoverflow.com/questions/32539832)

それによると、ブラウザーを閉じても計算は続けるけど、出力先が無くなってしまうので結果が出力されないためだそうです。

最も簡単な解決方法は、%%captureというセルマジックを使って、`stdout`, `stderr`, IPython の`display()
calls`をキャプチャーすることだそうです。

[code]

    %%capture output
    # 以下に時間のかかるコードを書く
    
[/code]

そうすると出力はすべて`output`という変数に保存されるので、再接続後に次のコマンドですべての出力が表示できるそうです。

[code]

    output.show()
    
[/code]


CC BY-SA 4.0
2018-07-01T11:45:03.463
45214
2018-07-01T11:45:03.463
15171
45202
answer


<https://github.com/NII-cloud-operation/Jupyter-LC_wrapper>

これを使うと browser が落ちても実行中（実行の指示が Kernel に伝わっている）セルの出力は wrapper kernel
がファイルに保存するので、結果の確認が可能です。

また、別のアプローチとしては.. papermil (<https://github.com/nteract/papermill>)
を利用するという方法も考えられます。


CC BY-SA 4.0
2019-07-25T05:19:34.780
56878
2019-07-25T05:19:34.780
35249
45202
answer