ttymon(1M) SYSTEM ADMINISTRATION COMMANDS ttymon(1M)
NAME
ttymon - port monitor for terminal ports
SYNOPSIS
/usr/lib/saf/ttymon
/usr/lib/saf/ttymon -g [ -d device ] [ -h ] [ -t timeout ]
[-l ttylabel ] \
[ -p prompt ] [ -m modules ]
DESCRIPTION
ttymon is a STREAMS-based TTY port monitor. Its function is
to monitor ports, to set terminal modes, baud rates, and
line disciplines for the ports, and to connect users or
applications to services associated with the ports. Nor-
mally, ttymon is configured to run under the Service Access
Controller, sac, as part of the Service Access Facility
(SAF). It is configured using the sacadm command. Each
instance of ttymon can monitor multiple ports. The ports
monitored by an instance of ttymon are specified in the port
monitor's administrative file. The administrative file is
configured using the pmadm and ttyadm commands. When an
instance of ttymon is invoked by the sac command, it starts
to monitor its ports. For each port, ttymon first initial-
izes the line disciplines, if they are specified, and the
speed and terminal settings. The values used for initiali-
zation are taken from the appropriate entry in the TTY set-
tings file. This file is maintained by the sttydefs com-
mand. Default line disciplines on ports are usually set up
by the autopush command of the Autopush Facility. ttymon
then writes the prompt and waits for user input. If the
user indicates that the speed is inappropriate by pressing
the BREAK key, ttymon tries the next speed and writes the
prompt again. When valid input is received, ttymon inter-
prets the per-service configuration file for the port, if
one exists, creates a utmp entry if required, establishes
the service environment, and then invokes the service asso-
ciated with the port. Valid input consists of a string of
at least one non-newline character, terminated by a carriage
return. After the service terminates, ttymon cleans up the
utmp entry, if one exists, and returns the port to its ini-
tial state. If autobaud is enabled for a port, ttymon will
try to determine the baud rate on the port automatically.
Users must enter a carriage return before ttymon can recog-
nize the baud rate and print the prompt. Currently, the
baud rates that can be determined by autobaud are 110, 1200,
2400, 4800, and 9600. If a port is configured as a bidirec-
tional port, ttymon will allow users to connect to a ser-
vice, and, if the port is free, will allow uucico, cu or ct
to use it for dialing out. If a port is bidirectional,
ttymon will wait to read a character before it prints a
prompt.
If the connect-on-carrier flag is set for a port, ttymon
1
ttymon(1M) SYSTEM ADMINISTRATION COMMANDS ttymon(1M)
will immediately invoke the port's associated service when a
connection request is received. The prompt message will not
be sent.
If a port is disabled, ttymon will not start any service on
that port. If a disabled message is specified, ttymon will
send out the disabled message when a connection request is
received. If ttymon is disabled, all ports under that
instance of ttymon will also be disabled.
SERVICE INVOCATION
The service ttymon invokes for a port is specified in the
ttymon administrative file. ttymon will scan the character
string giving the service to be invoked for this port, look-
ing for a %d or a %% two-character sequence. If %d is
found, ttymon will modify the service command to be executed
by replacing those two characters by the full path name of
this port (the device name). If %% is found, they will be
replaced by a single %.
When the service is invoked, file descriptor 0, 1, and 2 are
opened to the port device for reading and writing. The ser-
vice is invoked with the user ID, group ID and current home
directory set to that of the user name under which the ser-
vice was registered with ttymon. Two environment variables,
HOME and TTYPROMPT, are added to the service's environment
by ttymon. HOME is set to the HOME directory of the user
name under which the service is invoked. TTYPROMPT is set
to the prompt string configured for the service on the port.
This is provided so that a service invoked by ttymon has a
means of determining if a prompt was actually issued by
ttymon and, if so, what that prompt actually was.
See ttyadm(1M) for options that can be set for ports moni-
tored by ttymon under the Service Access Controller.
INVOKING A STAND-ALONE ttymon PROCESS
A special invocation of ttymon is provided with the -g
option. This form of the command should only be called by
applications that need to set the correct baud rate and ter-
minal settings on a port and then connect to login service,
but that cannot be pre-configured under the SAC. The fol-
lowing combinations of options can be used with -g:
-d device device is the full path name of the port to
which ttymon is to attach. If this option is
not specified, file descriptor 0 must be set
up by the invoking process to a TTY port.
-h If the -h flag is not set, ttymon will force
a hangup on the line by setting the speed to
zero before setting the speed to the default
or specified speed.
-t timeout Specifies that ttymon should exit if no one
2
ttymon(1M) SYSTEM ADMINISTRATION COMMANDS ttymon(1M)
types anything in timeout seconds after the
prompt is sent.
-l ttylabel ttylabel is a link to a speed and TTY defini-
tion in the ttydefs file. This definition
tells ttymon at what speed to run initially,
what the initial TTY settings are, and what
speed to try next if the user indicates that
the speed is inappropriate by pressing the
BREAK key. The default speed is 9600 baud.
-p prompt Allows the user to specify a prompt string.
The default prompt is "Login: ".
-m modules When initializing the port, ttymon will pop
all modules on the port, and then push
modules in the order specified. modules is a
comma-separated list of pushable modules.
Default modules on the ports are usually set
up by the Autopush Facility.
SEE ALSO
pmadm(1M), sac(1M), sacadm(1M), ttyadm(1M).
System Administrator's Guide, ``The Port Monitor ttymon.''
NOTES
If a port is monitored by more than one ttymon, it is possi-
ble for the ttymons to send out prompt messages in such a
way that they compete for input.
3