This post will walk you through how to run a Jupyter notebook script from terminal with tmux (check here for my post about tmux usage).
When you are running Jupyter on a remote server or on cluster/ cloud resources, there are situations where you would like the Jupyter on the remote server or cluster continue running without termination when you shut down your laptop or desktop that you used to access the remote server. tmux will help with this.
In this post, we cover how to let your jupyter notebook running on a remote server continue running without termination via tmux.
Step 1: connect to your remote server with port forwarding
check the Step 5-2 in my post here about setting up Jupyter notebook for how to access your remote server with port forwarding, if you are not familiar with it.
Step 2: install tmux
check here for my post about tmux installation and usage
Step 3: install runipy python package
Check here for runipy installation and usage.
Step 4: in your terminal type the following command, then it will go into tmux window
Step 5: Start jupyter notebook within your tmux session with the following command
$ jupyter notebook --no-browser
The –no-browser option prevents Jupyter from automatically opening a browser window.
Let this terminal stay running.
Step 6: from your laptop, ssh to your remote server (does not need port forwarding this time)
Step 7: cd to where the jupyter notebook script located that you would like to run from terminal
If you do not know what does cd mean and do, check my post for a list of commonly used Linux commands.
Step 8: use the following command to run your ipynb script (this will save the output of each cell back to the notebook file)
$ runipy -o MyNotebook.ipynb
To save the notebook output as a new notebook, run:
$ runipy MyNotebook.ipynb OutputNotebook.ipynb
If your ipynb script without any error itself, it should be running on the server now.
Step 9: Things to pay attention to:
Do not close the terminal where you run the ipynb script within tmux session on your computer that you used to connect to the remote server, that will cause the termination of running the ipynb. But you can make your laptop in sleep or even shut down the computer, the tmux session will keep the ipynb running on your remote server and save the output in the ipynb.