Screen

From Grid5000
Revision as of 22:40, 6 November 2013 by Msimonin (talk | contribs)
Jump to navigation Jump to search

screen is a screen manager with VT100/ANSI terminal emulation.

Basics

  • Start a screen session (creates a single window with a shell in it):
screen
  • Invoke a screen command (consists of a "Ctrl + a" followed by one other character):
C-a <command_char>

Basics screen manipulation commands are :

C-a C-c : Create a new window with a shell and switch to that window.
C-a "   :  Present a list of all windows for selection.
C-a A   : Allow  the  user to enter a name for the current window.
C-a C-k : Kill current window

Further options are available in the man pages.

  • Detach from this screen terminal (program continues to run when its associated screen session is detached):
C-a d : Detach screen from this terminal.
  • Reattach a session (brings foreground a previously detached session):
screen -r
  • Invoke a screen customization command (used to set options):
C-a : <customization_command>

Multiuser mode

With multiuser mode, screen reveal itself as a powerfull colaborative administration tool.

Requirements

  • screen binary file must be setuid-root:
chmod u+s /usr/bin/screen
Note.png Note

The setuid setting is not mandatory if once the screen session is created by the first user, the second user can become root to attach the session at his turn (say, the second user is a admin).

  • screen socket directory must not be NFS mounted (your default must be changed if it is $HOME/.screen):
SCREENDIR=/tmp/screen-username1
Note.png Note

There is nothing to configure on Debian systems, as the SCREENDIR is correctly set on this distro by default.

Howto

  • User, named username1, initiates a basic screen session name test:
screen -S test
  • Then, he enables multiuser mode for this session:
C-a : multiuser on
  • After that, he allows the others, like username2, to connect to his session:
C-a : acladd username2
  • At last, allowed users, like username2, can attach to the multiuser session initiated by username1:
screen -r username1/test
  • To lists screen from others:
screen -ls username1/
Note.png Note

A $HOME/.screenrc file can be use to systematically setup the multiuser mode variables multiuser and acladd. One is provided in the svn repository: screenrc, save is in your home directory as ~/.screenrc