IT Management Daily
Storage Daily
Security Daily

follow us on Twitter

Be a Commerce Partner

Internet News
Small Business
Personal Technology

Search internet.com
Corporate Info
Tech Jobs
E-mail Offers

Related Articles
SSH Tunnel Setup and Configuration Guide
Practical Security: Creating SSH Tunnels
Linux and UNIX How To: Scripting SSH and SFTP

Security Products
 Bulletproof Public PC (Pc-Safety)
 Outlook Duplicates Remover (Outlook Duplicates Remover)
 Power Registry Suit (GETVideoSoft)
 Secure Email (Secure Email)
 Password Genie (SecurityCoverage, Inc.)
 PC Cop (Maximum Software)
» Enterprise IT Planet » Security » Security Features

SSH at Work: Manage Long-Running Processes with screen

By Jeremy M. Jones
February 4, 2009

Email Print Digg This Add to del.icio.us

In a day of laptops and remote systems, it's often impractical to keep the same ssh session going to a specific server indefinitely. There are times when I want to reconnect from home to an ssh session that I started at work. Unfortunately, ssh doesn't support that sort of thing. But the screen utility lets you do something similar to this.

Screen is great for letting you start a terminal session, walk away from it, and then come back later. Maybe you need to start a long running process such as a complicated data conversion or a multi-hour build. You can use screen to start the ball rolling, go home, and resume the already-in-progress and uninterrupted activity that you started at work.

What screen is and does

According to the first line of the screen man page, "Screen is a full-screen window manager that multiplexes a physical terminal between several processes (typically interactive shells)." That's a mouthful. It's also a little misleading.

When I think of a window manager, I think of an application that manages GUI windows on a desktop. When the screen documentation refers to a "window," it means a virtual terminal that is running some application. By "window manager," it means that screen manages one or more virtual terminals. By "full-screen," it means that screen can expand to the limits of the real terminal that contains the screen session. And by "multiplexes," it means that screen can control a number of virtual terminals and switch the view to any one of them and not interrupt the running of any of the others.

While that is the gist of what screen does, that's not the whole picture. When you execute the screen utility, you are really spawning a management process and connected to it. This management process is also known as a screen "session." You can disconnect from the process at any time and leave everything running just as if it were running in a terminal. You can also create a number of different virtual terminals, each running its own application, and switch among them. When you create these virtual terminals, you can almost think of them as part of a tabbed terminal emulator such as Terminal.app on Mac, gnome-terminal on Gnome, or konsole on KDE, except without the visible tabs.

Creating screen sessions

You create a screen session by running the "screen" command line utility. If you run "screen" with no command line arguments, screen will create a new session for you and drop you into a shell. The first thing you see will be a banner that looks like this:

Screen version 4.00.03jw4 (FAU) 2-May-06
Copyright (c) 1993-2002 Juergen Weigert, Michael Schroeder
Copyright (c) 1987 Oliver Laumann
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program (see the file COPYING); if not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301 USA.
Send bugreports, fixes, enhancements, t-shirts, money, beer &
pizza to screen@uni-erlangen.de
            [Press Space or Return to end.]

After you hit space or return (or enter), you will be dropped into a shell. At this point, you can list all the screen sessions that you are running. If you run "screen" with a "-ls" argument, screen will display a list of your screen sessions:

jmjones@dinktrepid:~$ screen -ls
There is a screen on:
        7596.pts-1.dinktrepid   (01/30/2009 07:45:37 AM)        (Attached)
1 Socket in /var/run/screen/S-jmjones.

The state of this screen session is "Attached." When you start a new screen session with no arguments, you will automatically be "attached" to it. The number "7596" indicates the process ID of the screen management process. I'll discuss later how this information is useful. (Hint, I said something about detaching and re-attaching to screen sessions earlier.)

Page 2: Starting Several Sessions

Go to page: 1  2  Next  

Email Print Digg This Add to del.icio.us

Security Features Archives