问题
I connect to a remote server using ssh -L
but if I close the laptop lid or the connection is lost, the jupyter notebook is disconnected.
After I reconnect to the remote server, the "last" session is lost.
What can be done to make it persistent?
Could screen
help with it?
回答1:
On the remote server, you should open your jupyter in a screen
session, it will make it persistent if you lose the connection to the server and resume it.
- On your computer:
ssh -L xxxx:localhost:yyyy server
. screen
.jupyter notebook --no-browser --port=yyyy
.- In your browser:
localhost:xxxx
.
To disconnect manually and reconnect:
- Exit the screen window:
control + a
and thend
. - Disconnect from the server:
control + d
- And reconnect
ssh -L xxxx:localhost:yyyy
. - Optionally, you can reopen the screen window, though unnecessary, using
screen -r
. - Go back to your notebook or reopen
localhost:xxxx
.
回答2:
The standard usage for persisting Jupyter server sessions is the use of nohup
and &
; in your remote server with IP address xx.xx.xx.xx
:
nohup jupyter notebook --no-browser --ip xx.xx.xx.xx --port yyyy &
Now, even if you switch off your laptop or lose the connection, you will be always able to reconnect by pointing your browser at xx.xx.xx.xx:yyyy
回答3:
I would like to add to @BiBi's answer, but don't have enough reputation to write a reply..
Instead of screen
I could recommend you to take a look at tmux. Especially, if you combine tmux with the Tmux Plugin Manager and install Tmux Resurrect, even after reboots of your remote server you will be able to go back to your previous Tmux sessions.
Shortcuts for tmux are somewhat equal to those of screens, just that control + a
is replaced by control + b
. Of course, tmux allows you to configure your custom shortcuts.
来源:https://stackoverflow.com/questions/45835971/persistent-use-of-jupyter-notebook-from-remote-server