Screen
on Linux is a popular command-line program that lets you multiplex between interactive shells.
What that means is, you can use screen
to save and restore running of commands.
Screen
in action
The best way to test this out is to SSH into a server.
sh [email protected]
user@server:~#
At this stage, you can execute man screen
to learn all the commands available to you.
You can issue a screen -list
to show all screen sessions that may already be open.
$ screen -list
No Sockets found in /run/screen/S-user.
If there are no sessions, then you can simply begin by typing screen
and hitting Return
.
You will be presented with this the first time around, you can press Space
or Return
to continue at any time.
Now you can execute some long-running script or otherwise over SSH and not worry about being timed-out, logged out or cut off midway.
Simply press Ctrl
+A
followed by Ctrl
+D
to exit out while saving the state.
Listing, Retrieving and Destroying Shells
Now in the parent shell, type screen -list
one more time to see the shell still active, that can be rejoined.
$ screen -list
There is a screen on:
3560.pts-0.server (02/09/20 09:21:12) (Detached)
If there is only one entry in this list, type screen -r
to rejoin it, otherwise, type screen -r <PTRR_ID>
.
For example in the above screen -r 3560.pts-0.server
.
To terminate a shell session, simply go into and press Ctrl
+D
to destroy it. Now if you type screen -list
once again, there will be no sessions, just how it started out.