Screen

From Grid5000
Revision as of 09:09, 18 September 2007 by Xdelaruelle (talk | contribs)
Jump to navigation Jump to search
Warning.png Warning

To tag from the user's perspective {{{2}}}

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>
  • Detach from this screen terminal (program continues to run when its associated screen session is detached):
C-a d
  • 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