Slightly improved README and dtach.1
This commit is contained in:
parent
6085f4c79a
commit
ba4a3a502f
108
README
108
README
|
|
@ -1,3 +1,5 @@
|
||||||
|
1. INTRODUCTION
|
||||||
|
|
||||||
dtach is a program written in C that emulates the detach feature of
|
dtach is a program written in C that emulates the detach feature of
|
||||||
screen, which allows a program to be executed in an environment that is
|
screen, which allows a program to be executed in an environment that is
|
||||||
protected from the controlling terminal. For instance, the program under
|
protected from the controlling terminal. For instance, the program under
|
||||||
|
|
@ -5,26 +7,114 @@ the control of dtach would not be affected by the terminal being
|
||||||
disconnected for some reason.
|
disconnected for some reason.
|
||||||
|
|
||||||
dtach was written because screen did not adequately meet my needs; I did
|
dtach was written because screen did not adequately meet my needs; I did
|
||||||
not need the other features of screen, such as its support of multiple
|
not need screen's extra features, such as support for multiple
|
||||||
terminals or its terminal emulation support. screen was also too big,
|
terminals or terminal emulation support. screen was also too big,
|
||||||
bulky, and the source code was also difficult to understand.
|
bulky, and had source code that was difficult to understand.
|
||||||
|
|
||||||
screen also interfered with my use of full-screen applications such as
|
screen also interfered with my use of full-screen applications such as
|
||||||
emacs and ircII, since screen excessively interprets the stream between
|
emacs and ircII, due to its excessive interpretation of the stream between
|
||||||
the program and the attached terminals. dtach does not have a terminal
|
the program and the attached terminals. dtach does not have a terminal
|
||||||
emulation layer, and passes the raw output stream of the program to the
|
emulation layer, and passes the raw output stream of the program to the
|
||||||
attached terminals. The input processing that dtach performs is
|
attached terminals. The only input processing that dtach does perform is
|
||||||
scanning for the detach character (which signals dtach to detach from
|
scanning for the detach character (which signals dtach to detach from
|
||||||
the program) and processing the suspend key (which tells dtach to
|
the program) and processing the suspend key (which tells dtach to
|
||||||
temporarily suspend itself without affecting the running program), which
|
temporarily suspend itself without affecting the running program), and both
|
||||||
can both be disabled if desired.
|
of these can both be disabled if desired.
|
||||||
|
|
||||||
Contrary to screen, dtach has minimal features, and is extremely tiny.
|
Contrary to screen, dtach has minimal features, and is extremely tiny.
|
||||||
The small size allows it to be more easily audited for bugs and security
|
This allows dtach to be more easily audited for bugs and security
|
||||||
holes, and also allows it to fit in environments where space is limited,
|
holes, and makes it accessible in environments where space is limited,
|
||||||
such as on rescue disks.
|
such as on rescue disks.
|
||||||
|
|
||||||
dtach has only been tested on the Linux/x86 platform, however it should
|
dtach has only been tested on the Linux/x86 platform, however it should
|
||||||
be easily portable to other variants of Unix. It currently assumes that
|
be easily portable to other variants of Unix. It currently assumes that
|
||||||
the host system uses POSIX termios, and has a working forkpty function
|
the host system uses POSIX termios, and has a working forkpty function
|
||||||
available.
|
available.
|
||||||
|
|
||||||
|
2. QUICK START
|
||||||
|
|
||||||
|
Compiling dtach should be simple, as it uses autoconf:
|
||||||
|
|
||||||
|
$ ./configure
|
||||||
|
$ make
|
||||||
|
|
||||||
|
If all goes well, a dtach binary should be built for your system. You can
|
||||||
|
then copy it to the appropriate place on your system.
|
||||||
|
|
||||||
|
dtach uses Unix-domain sockets to represent sessions; these are network
|
||||||
|
sockets that are stored in the filesystem. You specify the name of the
|
||||||
|
socket that dtach should use when creating or attaching to dtach sessions.
|
||||||
|
|
||||||
|
For example, let's create a new session that is running ircII. We will use
|
||||||
|
/tmp/foozle as the session's socket:
|
||||||
|
|
||||||
|
$ dtach -A /tmp/foozle irc RuneB irc.openprojects.net
|
||||||
|
|
||||||
|
Here, -A tells dtach to either create a new session or attach to the
|
||||||
|
existing session. If the session at /tmp/foozle does not exist yet, the
|
||||||
|
program will be executed. If it does exist, then dtach will attach to
|
||||||
|
the existing session.
|
||||||
|
|
||||||
|
dtach has another attach mode, which is specified by using -a. The -a
|
||||||
|
mode attaches to an already existing session, but will not create a
|
||||||
|
new session. Each attaching process can have a separate detach character
|
||||||
|
and suspend behavior, which are explained in the following sections.
|
||||||
|
|
||||||
|
dtach is able to attach to the same session multiple times, though you
|
||||||
|
will likely encounter problems if your terminals have different window
|
||||||
|
sizes. Pressing ^L (Ctrl-L) will reset the window size of the program to
|
||||||
|
match the current terminal.
|
||||||
|
|
||||||
|
3. DETACHING FROM THE SESSION
|
||||||
|
|
||||||
|
By default, dtach scans the keyboard input looking for the detach character.
|
||||||
|
When the detach character is pressed, dtach will detach from the current
|
||||||
|
session and exit, leaving the program running in the background. You can then
|
||||||
|
re-attach to the program by running dtach again with -A or -a.
|
||||||
|
|
||||||
|
The default detach character is ^\ (Ctrl-\). This can be changed by supplying
|
||||||
|
the -e option to dtach when attaching. For example:
|
||||||
|
|
||||||
|
$ dtach -a /tmp/foozle -e '^A'
|
||||||
|
|
||||||
|
That command would attach to the existing session at /tmp/foozle and use
|
||||||
|
^A (Ctrl-A) as the detach character, instead of the default ^\.
|
||||||
|
|
||||||
|
You can disable processing of the detach character by supplying the -E
|
||||||
|
option to dtach when attaching.
|
||||||
|
|
||||||
|
4. SUSPENDING DTACH
|
||||||
|
|
||||||
|
By default, dtach also processes the suspend key (^Z or Ctrl-Z) itself,
|
||||||
|
instead of passing it to the program. Thus, pressing suspend only suspends
|
||||||
|
the attaching process, instead of the running program. This can be very
|
||||||
|
useful for applications such as ircII, where you may not necessarily want
|
||||||
|
the program to be suspended.
|
||||||
|
|
||||||
|
Processing of the suspend key can be disabled by supplying the -z option
|
||||||
|
to dtach when attaching.
|
||||||
|
|
||||||
|
5. CHANGES
|
||||||
|
|
||||||
|
The changes since version 0.3 are:
|
||||||
|
- Slightly improved README and dtach.1
|
||||||
|
|
||||||
|
The changes in version 0.3 are:
|
||||||
|
- Fixed a typo in dtach.1
|
||||||
|
- Changed the attach code so that it tells the master when a suspend
|
||||||
|
occurs.
|
||||||
|
- Decreased the client <-> master packet size.
|
||||||
|
- Changed the master to send a stream of text to attaching clients
|
||||||
|
instead of sending a huge packet all the time.
|
||||||
|
- Use getrlimit and dynamically allocate the data structures, if
|
||||||
|
possible.
|
||||||
|
- Added some more autoconf checks.
|
||||||
|
- Initial sourceforge release.
|
||||||
|
|
||||||
|
6. AUTHOR
|
||||||
|
|
||||||
|
dtach is (C)Copyright 2001 Ned T. Crigler, and is under the GNU General
|
||||||
|
Public License.
|
||||||
|
|
||||||
|
Comments and suggestions about dtach are welcome, and can be sent to
|
||||||
|
the author at: <crigler@hell-city.org>.
|
||||||
|
|
|
||||||
10
dtach.1
10
dtach.1
|
|
@ -23,7 +23,7 @@ works best with full-screen applications such as emacs.
|
||||||
|
|
||||||
.B dtach
|
.B dtach
|
||||||
is intended for users who want the detach feature of screen without the other
|
is intended for users who want the detach feature of screen without the other
|
||||||
overhead that screen has. It is tiny, does not use many libraries, and stays
|
overhead of screen. It is tiny, does not use many libraries, and stays
|
||||||
out of the way as much as possible.
|
out of the way as much as possible.
|
||||||
|
|
||||||
.SS SESSIONS
|
.SS SESSIONS
|
||||||
|
|
@ -31,7 +31,7 @@ A session in
|
||||||
.B dtach
|
.B dtach
|
||||||
is a single instance in which a program is running under the control of
|
is a single instance in which a program is running under the control of
|
||||||
.BR dtach .
|
.BR dtach .
|
||||||
The program is dissasociated from the original terminal, and is thus protected
|
The program is disassociated from the original terminal, and is thus protected
|
||||||
from your original terminal being disconnected for some reason.
|
from your original terminal being disconnected for some reason.
|
||||||
.PP
|
.PP
|
||||||
|
|
||||||
|
|
@ -59,13 +59,13 @@ attached terminals.
|
||||||
.SS MODES
|
.SS MODES
|
||||||
.B dtach
|
.B dtach
|
||||||
has several modes of operation. It can create a new session in which a
|
has several modes of operation. It can create a new session in which a
|
||||||
program is executed, or it can attach to an already existing session. The first
|
program is executed, or it can attach to an existing session. The first
|
||||||
argument specifies which mode
|
argument specifies which mode
|
||||||
.B dtach
|
.B dtach
|
||||||
should operate in.
|
should operate in.
|
||||||
.TP
|
.TP
|
||||||
.B \-a
|
.B \-a
|
||||||
Attach to an already existing session.
|
Attach to an existing session.
|
||||||
.B dtach
|
.B dtach
|
||||||
attaches itself to the session specified by
|
attaches itself to the session specified by
|
||||||
.IR <socket> .
|
.IR <socket> .
|
||||||
|
|
@ -73,7 +73,7 @@ After the attach is completed, the window size of the current terminal is sent
|
||||||
to the master process, and a redraw is also requested.
|
to the master process, and a redraw is also requested.
|
||||||
.TP
|
.TP
|
||||||
.B \-A
|
.B \-A
|
||||||
Attach to an already existing session, or create a new one.
|
Attach to an existing session, or create a new one.
|
||||||
.B dtach
|
.B dtach
|
||||||
first tries to attach to the session specified by
|
first tries to attach to the session specified by
|
||||||
.I <socket>
|
.I <socket>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue