Screen is a very useful command that offers the ability to use multiple shell windows (sessions) from a single SSH session. When the session is detached or there is a network disruption, the process that is started in a screen session will still run and you can re-attach to the screen session at any time. This also comes in handy if you want to run a long process persistently or connect to shell sessions from multiple locations.
In this article, we will show the basics of installing and using screen on a Linux VPS.
How to install screen
Screen comes preinstalled on some of the popular distributions. You can check if it is installed on your server using the following command
screen -v Screen version 4.00.03 (FAU)
If you do not have screen to the VPS, you can easily install it using the package manager provided by the OS.
CentOS/RedHat/Fedora
yum -y install screen
Ubuntu/Debian
apt-get -y install screen
How to start a screen session
You can start screen by typing ‘screen’ at the command prompt and a new screen session will be started which looks the same as the command prompt
screen
It is a good practice to start screen sessions with descriptive names so you can easily remember which process is running in the session. To create a new session with a session name run the following command
screen -S name
and replace ‘name’ with a meaningful name for your session.
Detach from screen session
To detach from the current screen session you can press ‘Ctrl-A‘ and ‘d‘ on your keyboard. All screen sessions will still be active and you can re-attach to them at any time later.
Reattach to screen session
If you have detached from a session or your connection is interrupted for some reason, you can easily re-attach by executing the following command:
screen -r
If you have multiple screen sessions you can list them with ‘ls’
screen -ls There are screens on: 7880.session (Detached) 7934.session2 (Detached) 7907.session1 (Detached) 3 Sockets in /var/run/screen/S-root.
In our example, we have three active screen sessions. So, if you want to restore the session ‘session2’ you can execute
screen -r 7934
or you can use the screen name
screen -r -S session2
Terminate screen session
There are several ways to terminate the screen session. You can do it by pressing ‘Ctrl‘ + ‘d‘ on your keyboard or use the ‘exit’ command line command.
To see all useful features of the screen command you can check screen’s man page.
man screen NAME screen - screen manager with VT100/ANSI terminal emulation SYNOPSIS screen [ -options ] [ cmd [ args ] ] screen -r [[pid.]tty[.host]] screen -r sessionowner/[[pid.]tty[.host]]