Screen is the best sysadmin and cluster user companion. It does a magical thing: if you disconnect abruptly from a server, it will keep everything running as is you've never disconnected. Think of it as an open window to your work on a remote machine, to which only you can have access.
To give an idea of what screen
does, follow this simple tutorial in which we will be using the top
utility that shows processes running on a machine. The tutorial shows how, if you start top in a screen session and you disconnect from a server, the top program is still running on the remote machine.
Please read tips at the end on how to use copy mode and move in the open window.
[pflorido@n12 pp]$ screen
An intro page will appear where you have to press enter or space. At this point you are in a virtual shell running on the server, independent from the ssh connection. If connection drops by during this time you don't loose your session.
[pflorido@n12 pp]$ top
A lot of info about running processes will fill the terminal.
The screen session will be detached. you'll see a message like:
[detached]
and you will be sent back to the shell where you wrote screen
before.
With the command
[pflorido@n12 pp]$ screen -list
You'll see a list of running detached or attached screens, like this:
There is a screen on: 20440.pts-1.n12 (Detached) 1 Socket in /var/run/screen/S-pflorido.
[pflorido@n12 pp]$ screen -DR 20440.pts-1.n12
You should now see the running processes as if top command was never stopped. In fact it had never stopped!
Press q
to exit it and keep working on the same screen shell.
You can try screen
effectiveness this way:
screen
screen -list
: the screen session is still there!!Inside a screen session, interaction with the shell changes. In particular, to scroll up and down you should use the combination:
Ctrl a ESC
to enter copy mode. Then you can move the cursor up and down in the screen session.Ctrl a ?
will give you a list of commandsman screen
will give you more info.Ctrl a c
Ctrl a p
previousCtrl a n
next-S
flag:[pflorido@n12 pp]$screen -S " Don't screen at me!" [pflorido@n12 pp]$ screen -list There are screens on: 20550.Don't screen at me! (Detached) 20440.pts-1.n12 (Detached) 2 Sockets in /var/run/screen/S-pflorido.