DETACHTTY
Section: User Commands (1)
Updated: Mar 18, 2006
Index
Return to Main Contents
NAME
detachtty, attachtty - run an interactive program with io to a unix-domain socket
SYNOPSIS
detachtty
[--no-detach]
[--dribble-file dribblename]
[--log-file name]
[--pid-file pidname]
socket-path command
[arguments-to-command]...
attachtty
socket-path
[command]
[timeout]
attachtty
username@host:socket-path
[command]
DESCRIPTION
detachtty
lets you run interactive programs non-interactively, and connect to
them (optionally over the network) when you do need to interact with them.
command is run on a pseudo-terminal, and data is copied between it
and a unix(7)-domain socket named socket-path. command
runs with the current user's permissions and environment variables.
attachtty
is used to connect to a process running under detachtty. It copies
between socket-path and stdin/out. It also catches SIGINT and
arranges for it to be forwarded to the command, so the user may
use Control-C in the usual fashion.
If you've used screen, it's a similar concept. Compared to screen,
detachtty has
* no capability to swap between different screens (it doesn't co-opt C-a)
* no tty emulation (you can sanely use it in emacs comint modes)
* no features (less to go wrong)
* no configuration file
* ability to spawn ssh to securely connect across the network
OPTIONS
These programs approximately follow the usual GNU command line syntax,
using long options that start with two dashes (`--').
For detachtty, the options are:
- --no-detach
-
Don't fork into the background. Useful if you wish to start the
program from
inittab(5).
- --dribble-file dribblename
-
All input from and to the program being run is copied into
dribblename
(if unspecified, it is discarded).
- --log-file name
-
Status messages (client connects, disconnects, errors) are sent to
name
(if unspecified, they go to standard error).
- --pid-file pidname
-
The process ID of detachtty is written to
pidname.
See SIGNALS.
- socket-path
-
The unix-domain socket. If access to command should be in any
way restricted, so should this socket - i.e. it is recommended that
you put it in a mode 700 directory.
- command arguments
-
The command to run (which is searched for in the normal way). All
remaining command line parameters are passed to it as arguments.
For attachtty, the options are instead:
- socket-path
-
This is either the path to socket-path, or a "remote path" of
the form
username@host:socket-path
where
username@host
is passed to ssh. The latter form is currently an alias for
ssh -t
username@host
attachtty socket-path [text]
and lets ssh manage the authentication, i.e. whether to ask for a password or not.
- text
-
The text to write into the socket. It will be processed by the command
executed from detachtty. For local sockets, the same effect can be obtained with
(echo -e text'\r'; sleep timeout) | attachtty socket-path
- timeout
-
The maximum timeout in seconds (defaults to 1) to wait for the written text
to be processed. This is available only for local connections.
To detach from the tty without exiting from the server process, send
attachtty any signal that it doesn't catch. See the SIGNALS section.
NOTES
detachtty does not search the user's PATH environment variable for the
program to execute, so a full pathname must be provided.
If you get an immediate "Child terminated, exiting" message from
detachtty, this usually means that the program you specified was not
found or could not be executed (on Linux 2.4,
execve(1)
succeeds even if it didn't, so to speak).
You will probably go insane a lot more slowly if you use absolute
pathnames for all filename arguments.
SIGNALS
Sending SIGHUP to the process identified by pidname
will cause detachtty to close and reopen its log files.
Sending SIGTSTP to an attachtty process (usually
from the keyboard with ^Z) will cause it to stop itelf,
leaving the server process running.
It can be resumed normally with the shell builtin command "fg".
Sending SIGQUIT to an attachtty process (usually
from the keyboard with ^\) will cause it to detach
from the tty and quit, leaving the server process running.
Sometimes you need to press it twice.
SEE ALSO
screen(1),
ssh(1),
sbcl(1).
AUTHOR
Written by Daniel Barlow <dan@telent.net>, and a cast of units.
Modified by Luca Capello <luca@pca.it>.
Modified by Mark Huetsch <markhuetsch@gmail.com>.
Modified by Massimiliano Ghilardi <massimiliano.ghilardi@gmail.com>.
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- OPTIONS
-
- NOTES
-
- SIGNALS
-
- SEE ALSO
-
- AUTHOR
-
This document was created by