A brief introduction to GNU Screen
Recently, I was looking for a solution to keep the processes running after terminal has been closed … and ended up finding 2 main ways for doing that:
nohupcommand: Which I think is the best and simplest way. You can simply use that with your long running command:
nohup your-command &
- Using window managers and terminal multiplexers like
tmux: Although they can do the job but that’s not what they’re built for!
Actually “GNU Screen” or simply “screen” is a tool that brings you the ability to run multi sessions, detach from a session, resume sessions, splitting window horizontally and vertically, locking a session screen, sharing an SSH screen, etc. tmux is an alternative for screen and it seems to have more popularity among sysadmins! But in this article we stick with the screen for it’s simplicity and availability. You’re able to check tmux man page or github page for more information.
Installing GNU Screen
You can simply install
apt (on Debian/Ubuntu) or
yum (CentOS/Fedora). Keep in mind that you need root access for installing:
# Ubuntu/Debian sudo apt-get update sudo apt-get upgrade sudo apt-get install screen
# Fedora/CentOS sudo yum update sudo yum install screen
If you’re a Mac user you should use Homebrew to install Screen. FYI I had some issues with some features of Screen on Mac (and you may also have).
# MacOS X brew install homebrew/dupes/screen
Okay, Now how to use it?
Just enter command:
Then you will be entered to a new session inside Screen. you can make many of them and switch between them. For detaching current session window just press
d keys. For listing created sessions enter following command:
For reattaching to one of them:
screen -r [screen name]
That’s it! You already know the most useful commands. But we’re not finished yet. Screen allows us to do much more (fun) things.
One of the use full features if you have to monitor your environment through several apps and logs! Screen allows you to split sessions screen horizontally and vertically. Just enter these commands inside a screen session:
# Split display horizontally Ctrl+a S # Split display vertically Ctrl+a | # Jump to next display region Ctrl+a tab
Simply lock your screen session and set a password for it:
# Locking current screen Ctrl+a x
Here I listed few features of Screen. Feel free to share any other co0l things related to this post in comments section.