How-to: Using screen or tmux to preserve a Linux terminal session
Action
Use screen command to prevent "Broken Pipe" messages and terminal session timeouts
Why?
When connecting to our systems (head, headnode7, lmm, etc.) via PuTTY, or terminal in mac when there is a disruption in the ssh connection, you will see a "Broken Pipe" error and loose access to any programs that were running, without being able to recover them. Screen and tmux allow you to "detatch" a session (i.e. keep it running in the background), and move on to another task in the same terminal window, or disconnect from the machine and let your code keep running.Â
Instructions
Basic Linux Screen Usage
After connecting to a machine from PuTTY, terminal, etc., type
screen
Run the desired program
Use the key sequence ctrl ad to detach from the screen session, this will keep it running in the background and return to your main shell
Note, if you do not detach the session, you can restore if the connection drops by reconnecting and running screen -r
To see a list of active screen sessions, type
screen -ls
Reattach to the screen session by typing
screen -r [your session id here]
There are many useful tutorials for using screen to preserve terminal sessions, here is one:Â https://linuxize.com/post/how-to-use-linux-screen/#starting-linux-screen
Basic tmux usage
After connecting to a machine from PuTTY, terminal, etc., typeÂ
Run the desired program
Use the key sequence Ctrl+b d to detatch the session
To see a list of active tmux sessions
To reattach a tmux session type
There are many useful tutorials for using tmux to preserve terminal sessions, here is one: https://linuxize.com/post/getting-started-with-tmux/#starting-your-first-tmux-session
Â