The screen utility provides a way to run a command on a Linux system, detach from it, and then reattach later. This is particularly handy if you have a long-running process that you want to keep running even after you log out and still have the ability to reattach to it later and/or from another location.

This is general information about using screen that applies to just about every Linux system, not just those in the School of Informatics and Computing.

Basic Screen Usage

There are many good tutorials available on the web describing the use of screen. There is also detailed information in the screen man page, which you can view by running man screen. However, much of this information can be rather daunting given the sheer number of command line arguments and key bindings. The purpose of this page if to give you the bare minimum of information needed to get started with screen.

Here are the steps you can follow to run a process in screen, detach from the terminal, and then reattach.

  1. From the command prompt, just run screen. This will give you a new subshell.
  2. Run your desired program
  3. Detatch from the screen session using the key sequence *Ctrl-a Ctrl-d*  (note that all screen key bindings start with Ctrl-a).  This will drop you back to your original shell and display a message "\[detached\]", indicating that the screen session is still running.
  4. You can then list the available screen sessions by running "screen -list"
  5. You can reattach to this screen session by running "screen -r". Once reattached, you will be able to take off where you left off and see any output that was printed to the screen during the time that you were detached. If you have multiple screen sessions, then you can specify the tty name (as displayed by screen -list) as an argument to screen -r to attach to a particular session.