Prolonging terminal sessions: Difference between revisions
(Created page with " =SSH configuration= =Screen= =TMUX= [https://fr.wikipedia.org/wiki/Tmux tmux] is a terminal multiplexer that allows multiple virtual sessions in a single terminal session. You can also disconnect from an SSH server without interrupting its process(es). ==Cheat sheet== For a complete reference, see [http://hyperpolyglot.org/multiplexers this page]. {| class="wikitable" |- ! Command !! Description |- | <tt>tmux</tt> || Start a server |- | <tt>Ctrl+B D</tt> || Discon...") |
No edit summary |
||
Line 1: | Line 1: | ||
For working on the clusters, most users will need to use [[SSH]] to connect to the cluster for job submission and monitoring, editing files and so forth. Keeping this SSH connection alive for a long period of time, ranging from hours to days, may be necessary for some users and this page proposes a variety of techniques for keeping such a terminal session alive. | |||
=SSH configuration= | =SSH configuration= | ||
One simple solution is to modify the configuration of your SSH client to prolong the connection. On MacOS and Linux the client configuration is found in <tt>$HOME/.ssh/config</tt>, where you can add the lines | |||
<source> | |||
Host * | |||
ServerAliveInterval 240 | |||
</source> | |||
which will send a sign-of-life signal over the SSH connection to the cluster every four minutes (240 seconds). | |||
=Screen= | =Screen= |
Revision as of 14:08, 21 March 2023
For working on the clusters, most users will need to use SSH to connect to the cluster for job submission and monitoring, editing files and so forth. Keeping this SSH connection alive for a long period of time, ranging from hours to days, may be necessary for some users and this page proposes a variety of techniques for keeping such a terminal session alive.
SSH configuration
One simple solution is to modify the configuration of your SSH client to prolong the connection. On MacOS and Linux the client configuration is found in $HOME/.ssh/config, where you can add the lines
Host *
ServerAliveInterval 240
which will send a sign-of-life signal over the SSH connection to the cluster every four minutes (240 seconds).
Screen
TMUX
tmux is a terminal multiplexer that allows multiple virtual sessions in a single terminal session. You can also disconnect from an SSH server without interrupting its process(es).
Cheat sheet
For a complete reference, see this page.
Command | Description |
---|---|
tmux | Start a server |
Ctrl+B D | Disconnect from server |
tmux a | Reconnect to server |
Ctrl+B C | Create a new window |
Ctrl+B N | Go to next window |
Ctrl+B [ | Enable "copy" mode, allowing to scroll with the mouse and Page-Up Page-Down |
Esc | Disable "copy" mode |
Launch tmux inside a job submitted through tmux
If you submit a job with tmux and try to start tmux within the same job, you will get the lost server error message. This happens because the $TMUX environment variable pointing to the tmux server is propagated to the job. The value of the variable is not valid and you can reset it with:
[name@server ~]$ unset TMUX
However, nested use of tmux is not recommended. To send commands to a nested tmux, one has to hit Ctrl+B twice; for example, to create a new window, one has to use Ctrl+B Ctrl+B C. Consider using screen inside your job (if you are using tmux on a login node).