NAME¶
dtach - simple program that emulates the detach feature of screen.
SYNOPSIS¶
dtach -a <socket> <options>
dtach -A <socket> <options> <command...>
dtach -c <socket> <options> <command...>
dtach -n <socket> <options> <command...>
DESCRIPTION¶
dtach is a program that emulates the detach feature of screen. It is
designed to be transparent and un-intrusive; it avoids interpreting the input
and output between attached terminals and the program under its control.
Consequently, it works best with full-screen applications such as emacs.
dtach is intended for users who want the detach feature of screen without
the other overhead of screen. It is tiny, does not use many libraries, and
stays out of the way as much as possible.
SESSIONS¶
A session in
dtach is a single instance in which a program is running
under the control of
dtach. The program is disassociated from the
original terminal, and is thus protected from your original terminal being
disconnected for some reason.
Other instances of
dtach can attach themselves to a particular session.
Input and output is copied between the program running in the
dtach
session, and the attached terminals.
dtach avoids interpreting the communication stream between the program
and the attached terminals; it instead relies on the ability of the attached
terminals to manage the screen.
Sessions are represented by Unix-domain sockets in the filesystem. No other
permission checking other than the filesystem access checks is performed.
dtach creates a master process that monitors the session socket, the
program, and any attached terminals.
MODES¶
dtach has several modes of operation. It can create a new session in
which a program is executed, or it can attach to an existing session. The
first argument specifies which mode
dtach should operate in.
- -a
- Attach to an existing session. dtach attaches itself
to the session specified by <socket>. After the attach is
completed, the window size of the current terminal is sent to the master
process, and a redraw is also requested.
- -A
- Attach to an existing session, or create a new one.
dtach first tries to attach to the session specified by
<socket> if possible. If the attempt to open the socket
fails, dtach tries to create a new session before attaching to
it.
- -c
- Creates a new session. A new session is created in which
the specified program is executed. dtach then tries to attach
itself to the newly created session.
- -n
- Creates a new session, without attaching to it. A new
session is created in which the specified program is executed.
dtach does not try to attach to the newly created session, however,
and exits instead.
OPTIONS¶
dtach has a few options that allow you to modify its behavior. Each
attaching process can have separate settings for these options, which allows
for some flexibility.
- -e <char>
- Sets the detach character to <char>. When the
detach character is pressed, dtach detaches itself from the current
session and exits. The process running in the session is unaffected by the
detach. By default, the detach character is set to ^\ (Ctrl-\).
- -E
- Disables the detach character. dtach does not try to
scan input from the terminal for a detach character. The only way to
detach from the session is then by sending the attaching process an
appropriate signal.
- -r <method>
- Sets the redraw method to <method>. The valid
methods are none, ctrl_l, or winch.
none disables redrawing completely, ctrl_l sends a Ctrl L
character to the program if the terminal is in character-at-a-time and
no-echo mode, and winch forces a WINCH signal to be sent to the
program.
When creating a new session, the specified method is used as the default
redraw method for the session. If not specified, the ctrl_l method
is used.
- -z
- Disables processing of the suspend key. Normally,
dtach will suspend itself when the suspend key is pressed. With
this option, the suspend character is sent to the session instead of being
handled by dtach.
EXAMPLES¶
The following example creates a new session that has the detach character and
suspend processing disabled. A socket is created in the /tmp directory for the
session.
$ dtach -c /tmp/foozle -Ez bash
The following example attaches to the /tmp/foozle session if it exists, and if
not, creates a new session using /tmp/foozle as the socket for the session.
Processing of the suspend character is also disabled for the attach instance.
$ dtach -A /tmp/foozle -z bash
The following example attaches to the /tmp/foozle session, using the
winch redraw method to redraw the screen.
$ dtach -a /tmp/foozle -r winch
The following example creates a new session and sets the default redraw method
for the session to the
winch redraw method.
$ dtach -c /tmp/foozle -r winch bash
AUTHOR¶
Ned T. Crigler <crigler@users.sourceforge.net>.
SEE ALSO¶
screen(1)