Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
ttymon(1M)							    ttymon(1M)

       ttymon -	port monitor for terminal ports


       /usr/lib/saf/ttymon  -g	[-d device]  [-h]  [-t timeout]	 [-l ttylabel]
       [-p prompt] [-m modules]	[-T termtype]

       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. Normally, ttymon is configured to run under the Service Ac-
       cess Controller,	sac(1M), as part of the	Service	Access Facility	(SAF).
       It  is configured using the sacadm(1M) command. Each instance of	ttymon
       can monitor multiple ports.  The	ports monitored	by an instance of tty-
       mon are specified in the	port monitor's administrative file. The	admin-
       istrative file is configured using the pmadm(1M)	 and  ttyadm(1M)  com-
       mands.  When  an	 instance  of ttymon is	invoked	by the sac command, it
       starts to monitor its ports. For	each port,  ttymon  first  initializes
       the line	disciplines, if	they are specified, and	the speed and terminal
       settings. For ports with	entries	in  /etc/logindevperm,	device	owner,
       group and permissions are set.  (See logindevperm(4).)  The values used
       for initialization are taken from the appropriate entry in the TTY set-
       tings  file.  This  file	is maintained by the sttydefs(1M) command. De-
       fault line disciplines on ports are usually set up by the  autopush(1M)
       command of the Autopush Facility.

       ttymon then writes the prompt and waits for user	input. If the user in-
       dicates that the	speed is inappropriate by pressing the BREAK key, tty-
       mon  tries the next speed and writes the	prompt again. When valid input
       is received, ttymon interprets the per-service configuration  file  for
       the  port,  if  one  exists,  creates  a	 utmpx	entry if required (see
       utmpx(4)), establishes the service environment, and  then  invokes  the
       service	associated  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 utmpx entry,	if one
       exists, and returns the port to its initial 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 recognize 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 bidirectional port, ttymon will allow
       users to	connect	to a service, and, if the port is free,	will allow uu-
       cico(1M),  cu(1C),  or  ct(1C)  to use it for dialing out. If a port is
       bidirectional, ttymon will wait to read a character before it prints  a

       If  the	connect-on-carrier flag	is set for a port, ttymon will immedi-
       ately 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	admin-
       istrative  file.	 ttymon	will scan the character	string giving the ser-
       vice to be invoked for this port, looking for a %d or a %%  two-charac-
       ter 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	service	is in-
       voked with the user ID, group ID	and current home directory set to that
       of  the	user  name under which the service was registered with ttymon.
       Two environment variables, HOME and TTYPROMPT, are added	 to  the  ser-
       vice'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 actu-
       ally was.

       See ttyadm(1M) for options that can be set for ports monitored by  tty-
       mon under the Service Access Controller.

   System Console Invocation
       The  invocation of ttymon on the	system console is managed under	smf(5)
       by the service svc:/system/console-login. It provides a number of prop-
       erties  within  the property group ttymon to control the	invocation, as

       device		     astring		[-d device]
       nohangup		     boolean		[-h]
       label		     astring		[-l label]
       modules		     astring		[-m module1,module2]
       prompt		     astring		[-p prompt]
       timeout		     count		[-t timeout]
       terminal_type	     astring		[-T termtype]

       If any value is the empty string	or an integer set to  zero,  then  the
       option  is not passed to	the ttymon invocation. The -g option is	always
       specified for  this  invocation.	 The  -d  option  always  defaults  to
       /dev/console if it is not set.

       See EXAMPLES.

       ttymon  uses  pam(3PAM)	for  session management. The PAM configuration
       policy, listed through /etc/pam.conf, specifies the modules to be  used
       for ttymon. Here	is a partial pam.conf file with	entries	for ttymon us-
       ing the UNIX session management module.

       ttymon session  required	/usr/lib/security/

       If there	are no entries for the ttymon service, then  the  entries  for
       the "other" service will	be used.

       The following options are supported:

       -g	       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 terminal
		       settings	on a port and then connect to  login  service,
		       but  that  cannot  be pre-configured under the SAC. The
		       following combinations of options can be	used with -g:

       -ddevice	       device is the full path name of the port	to which  tty-
		       mon 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.

       -lttylabel      ttylabel	is a link to a speed and TTY definition	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.

       -mmodules       When initializing the port, ttymon will pop all modules
		       on  the port, and then push modules in the order	speci-
		       fied. modules is	a  comma-separated  list  of  pushable
		       modules.	 Default  modules on the ports are usually set
		       up by the Autopush Facility.

       -pprompt	       Allows the user to specify a prompt string. The default
		       prompt is Login:.

       -ttimeout       Specifies  that ttymon should exit if no	one types any-
		       thing in	timeout	seconds	after the prompt is sent.

       -Ttermtype      Sets the	TERM environment variable to termtype.

       Example 1: Setting the Terminal Type

       The following example sets the value of the terminal type  (-T)	option
       for the system console ttymon invocation:

	    svccfg -s svc:/system/console-login	setprop	\
		ttymon/terminal_type = "xterm"
	    svcadm refresh svc:/system/console-login:default

       If  any of the LC_* variables ( LC_CTYPE, LC_MESSAGES, LC_TIME, LC_COL-
       LATE, LC_NUMERIC, and LC_MONETARY ) (see	environ(5)) are	not set	in the
       environment,  the operational behavior of ttymon	for each corresponding
       locale category is determined by	the  value  of	the  LANG  environment
       variable.  If LC_ALL is set, its	contents are used to override both the
       LANG and	the other LC_* variables. If none of the  above	 variables  is
       set in the environment, the "C" (U.S. style) locale determines how tty-
       mon behaves.

       LC_CTYPE	       Determines how ttymon handles characters. When LC_CTYPE
		       is  set to a valid value, ttymon	can display and	handle
		       text and	filenames containing valid characters for that
		       locale.	ttymon	can  display  and handle Extended Unix
		       Code (EUC) characters where  any	 individual  character
		       can  be	1,  2, or 3 bytes wide.	ttymon can also	handle
		       EUC characters of 1, 2, or more column widths.  In  the
		       "C" locale, only	characters from	ISO 8859-1 are valid.


       See attributes(5) for descriptions of the following attributes:

       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       |Availability		     |SUNWcsu			   |
       |Stability		     |See below.		   |

       The command-line	syntax is Stable. The SMF properties are Evolving.

       ct(1C),	cu(1C),	 autopush(1M),	pmadm(1M),  sac(1M), sacadm(1M), stty-
       defs(1M),   ttyadm(1M),	 uucico(1M),	pam(3PAM),    logindevperm(4),
       pam.conf(4), utmpx(4), attributes(5), environ(5), pam_authtok_check(5),
       pam_authtok_get(5),	  pam_authtok_store(5),		pam_dhkeys(5),
       pam_passwd_auth(5),	  pam_unix_account(5),	     pam_unix_auth(5),
       pam_unix_session(5), smf(5)

       If a port is monitored by more than one ttymon, it is possible for  the
       ttymons to send out prompt messages
	in such	a way that they	compete	for input.

       The pam_unix(5) module is no longer supported. Similar functionality is
       provided	  by   pam_authtok_check(5),   pam_authtok_get(5),   pam_auth-
       tok_store(5),  pam_dhkeys(5),  pam_passwd_auth(5), pam_unix_account(5),
       pam_unix_auth(5), and pam_unix_session(5).

				  22 Feb 2005			    ttymon(1M)


Want to link to this manual page? Use this URL:

home | help